linux mysql安装与修改字符编码(乱码问题)

来源:互联网 发布:乐视刷windows xp 编辑:程序博客网 时间:2024/06/05 02:18

mysql数据库是一个开源的轻量级数据库,简便的操作拥有许多的使用者,是学习数据库,搭建小型服务器数据库的好选择。在安装mysql数据库时,经常遇到一个问题,就是中文出现乱码,这是由于mysql的默认字符编码不支持中文造成的,所以需要修改mysql字符编码以支持中文字符。这里展示在linux系统下安装与修改字符编码为utf-8。


1、安装mysql数据库

可以直接使用命令安装开源的mysql数据库,安装时注意安装到中间会出现提示输入mysql的root权限的登录密码。

sudo apt-get install mysql-server

安装结束后进入管理员权限,因为修改mysql的配置文件在/etc/文件夹下,这个文件夹只有在管理员模式下才能写

sudo su

登录数据库

mysql -u root -p

查看当前数据库的字符编码,可以发现,有latin1字符编码,这个字符编码就是造成乱码的原因。binary是二进制编码,是文件系统的编码,这并不需要修改。utf8编码是可以支持中文的,因此需要把字符编码修改为utf8,当然也可以修改为其它支持中文字符的编码。

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.55 sec)


2、修改字符编码

通过apt-get命令安装的mysql数据库的配置文件在/etc/mysql/下所以进入这个文件夹

cd /etc/mysql

进入mysql的配置文件夹后发现有几个文件,我们需要关注的是my.cnf配置文件,建议使用vi修改这个配置文件,因为一些服务器的配置没有图形化页面。

vi my.cnf

打开文件,在文件的末尾可以看到如下的注释,Additional settings that can override those from this file!,意思是在这个文件添加的设置将覆盖所有设置,也就是这个文件的配置优先级是最高的。在文件的后面添加如下的绿色语句。注意[mysql]和[mysqld]的不同。还要就是不要遗漏配置文件末尾本来就有的两句。


#

# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

[client]
;password = your_password
default-character-set=utf8

[mysql]
no-auto-rehash

[mysqld]
character_set_server = utf8


!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/


修改完成重启mysql数据库,注意如果其它终端有在使用mysql数据库,先将其退出数据库才能成功重启数据库

service mysql restart

再次登录数据库查看字符编码就可以发现字符编码已经修改成功了。

mysql -u root -p

mysql> show variables like 'character%';
+--------------------------+----------------------------+

| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


需要注意的是,修改字符编码只对后来建的数据库和表有作用,如果之前建立的数据库和表并没有作用,可以删除表和数据库再重新建。




0 0
原创粉丝点击