在刚装完mariadb,就建立了数据库,然后新建一个表,插入英文没有问题,但是插入中文就有问题,出现乱码
应该是数据库和服务器编码问题,所以应该改数据库和服务器编码属性
查看mysql编码集:
mysql> show variables
like
'%char%'
;
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
发现character_set_database和 character_set_server 属性设置Latin1 ,其实这个属性是数据库和服务器属性,在创建数据库时候如果不指定默认就是这个,因此对于创建的数据库可以修改数据库和服务器编码为utf8,
这里有2中方法。一种是直接敲代码设置(临时设置,重启mariadb服务后恢复原来的编码属性),一种是在CentOS7中修改文件/usr/my.cnf(永久性),
方法一直接敲代码:
mysql>
set
character_set_database=utf8;
mysql>
set
character_set_server=utf8;
然后把原来创建的数据库删除重新建立一个,再创建一个表,就可以插入中文啦。。。
方法二直接修改my.cnf文件:
打开配置文件:
vi /etc/my.cnf;
在[mysqld],[mysql]下分别添加如下内容
[ mysqld ]
character_set_server = utf8
[ mysql ]
default-character-
set
=utf8
然后保存退出,重启Mariadb 服务。