mysql配置命令 CHARACTER_SET_%字符集设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql配置命令 CHARACTER_SET_%字符集设置相关的知识,希望对你有一定的参考价值。

参照:

http://blog.csdn.net/mzlqh/article/details/7621307点击打开链接


其实现在的ubuntu12.04 直接sudo apt-get install mysql 就可以了,mysql-client会自动地为你装上

#查看mysql是否正在运行

sudo netstat -tap | grep mysql

如果是正在运行,则


tcp 0 0 localhost.localdomain:mysql *:* LISTEN -





重启mysql

sudo /etc/init.d/mysql restart





配置 MySQL 的管理员密码:


1 
sudo mysqladmin -u root password newpassword 


三、 MySQL服务 加入开机自启动

加入开机自启动:        sudo update-rc.d mysql defaults

从开机自启动中移出:    sudo update-rc.d -f mysql remove

四、远程连接ubuntu下MySQL

vim /etc/mysql/my.cnf找到

bind-address = 127.0.0.1

这行,注释掉(如下)

#bind-address = 127.0.0.1

或者改为

bind-address = 0.0.0.0

允许任意IP访问,或者自己指定一个IP地址。

然后重启 MySQL

sudo /etc/init.d/mysql restart

授权用户能进行远程连接

grant all privileges on *.* to root@"%" identified by "password" with grant option;

flush privileges;

第一行命令解释如下,*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。root:授予root账号。“%”:表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。“password”:分配账号对应的密码,这里密码自己替换成你的mysql root帐号密码。

第二行命令是刷新权限信息,也即是让我们所作的设置马上生效。

此时再远程连接ubuntu下的MySQL应该能够连接上了。




解决mysql插入中文字符时出现乱码




[sql] view plain copy print?
01.比如你可以在建库时设置默认编码为utf8:  
02.create database mydb default character set utf8 collate utf8_general_ci;  







[sql] view plain copy print?
01.问题解决了,原因是在my.cnf中缺少了如下代码:  
02.[client]  
03.default-character-set=utf8  
04.[mysqld]  
05.default-character-set=utf8  
06.  
07.  
08.如果不加以上代码,那么即便MYSQL编译安装时指定的编码是UTF8,那么在建库时其默认编码仍是LATIN1,而由于字符集的继承性,库中的表也是LATIN1的了。  
09.  
10.  
11.这里列几条命令,大家可以自己试下:  
12.1.列出MYSQL支持的所有字符集:  
13.SHOW CHARACTER SET;  
14.  
15.2.当前MYSQL服务器字符集设置  
16.SHOW VARIABLES LIKE character_set_%;  
17.  
18.3.当前MYSQL服务器字符集校验设置  
19.SHOW VARIABLES LIKE collation_%;  
20.  
21.4.显示某数据库字符集设置  
22.show create database 数据库名;  
23.  
24.5.显示某数据表字符集设置  
25.show create table 表名;  
26.  
27.6.修改数据库字符集  
28.alter database 数据库名 default character set utf8;  
29.  
30.7.修改数据表字符集  
31.alter table 表名 default character set utf8;  
32.  
33.8.建库时指定字符集  
34.create database 数据库名 character set gbk collate gbk_chinese_ci;  
35.  
36.9.建表时指定字符集  
37.CREATE TABLE `mysqlcode` (  
38.`id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
39.`content` VARCHAR( 255 ) NOT NULL  
40.) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;  




 ubuntu12.04 mysql配置文件路径是/etc/mysql/my.cof 




[sql] view plain copy print?
01.(2)用命令show variables like character\_set\_%;查看当前字符集设定:  






[sql] view plain copy print?
01.修改mysql字符编码出现Job failed to start解决办法  
02.   
03.在python mange.py shell下填充MySQL数据库的时候,发现汉字不能输入。  
04.于是要修改一下MySQL数据库编码。  
05.   
06.从网上找到如下资料:  
07.$sudo gedit /etc/mysql/my.cnf  
08.[client]下添加:  
09.   
10.default-character-set=utf8  
11.   
12.[mysqld]下添加:  
13.   
14.default-character-set=utf8  
15.   
16.        然后保存退出  
17.   
18.$sudo service mysql restart  
19.   
20.        结果出现了Job failed to start  
21.  www.2cto.com    
22.----------------------------------------------------------------------------------------------------------------------------  
23.可能是版本的问题,查5.5以后的版本对字符编码方式修改的办法,发现[mysqld]修改方法变了:  
24.   
25.[mysqld]下添加的应该为:  
26.   
27.character-set-server=utf8  
28.   
29.collation-server=utf8_general_ci  
30.   
31.保存退出  
32.   
33.$sudo service mysql restart  
34.   
35.成功  
36.   
37.进入MySQL控制台:  
38.   
39.    show variables like character%;  
40.  www.2cto.com    
41.+-----------------------------------+-----------------------------------+  
42.| Variable_name                    | Value                                    |  
43.   
44.+-----------------------------------+-----------------------------------+  
45.   
46.| character_set_client           | utf8                                         |  
47.   
48.| character_set_connection | utf8                                         |  
49.   
50.| character_set_database    | utf8                                         |  
51.   
52.| character_set_filesystem   | binary                                    |  
53.   
54.| character_set_results         | utf8                                         |  
55.  www.2cto.com    
56.| character_set_server          | utf8                                         |  
57.   
58.| character_set_system         | utf8                                         |  
59.   
60.| character_sets_dir               | /usr/share/mysql/charsets/ |  
61.   
62.+------------------------------------+-----------------------------------+  
63.   
64.8 rows in set (0.00 sec)  
65.   
66.已经修改成功,做下记录。  
67.   
68.   




 最后是这样做的: 




[sql] view plain copy print?
01. $sudo gedit /etc/ mysql/my.cnf  
02.[client]下添加:  
03.   
04.default-character-set=utf8  
05.[mysqld]下添加的应该为:  
06.   
07.character-set-server=utf8  
08.   
09.collation-server=utf8_general_ci  
10.   
11.保存退出  
12.   
13.$sudo service mysql restart  
14.   
15.成功  



但是中文乱码的解决道路还没有结束 




[sql] view plain copy print?
01.character_set_server 服务器的默认字符集。  
02.character_set_database 默认数据库使用的字符集。当默认数据库更改时,服务器则设置该变量。如果没有默认数据库,变量的值同character_set_server。  
03.show variables like character%;  
04.你用set @@character_set_database=utf8  
05.show variables like character%;  
06.在看下character_set_server的值  





成功了!

 

以上是关于mysql配置命令 CHARACTER_SET_%字符集设置的主要内容,如果未能解决你的问题,请参考以下文章

在my.ini文件中配置mysql统一字符集

MySQL的几个character_set变量的说明

修改mysql编码方式

CentOS修改Mysql字符集

mysql(5.7.17)字符集设置(character_set/collation)

mysql中文显示问号,不能识别中文的解决方案