mariadb数据库输入中文乱码解决
当使用mysql数据库时,作为纯正的爱国者(实质是英语看不懂),当然会使用中文存储一些数据,但是默认情况下存储的中文是 ??????
这种外星文文字,这是要搞什么?
因此如何修改数据库中的编码格式设置呢?
数据库编码格式的查看
登陆数据库
$ mysql -uroot -p
通过下面命令查看mysql的编码格式;
MariaDB [(none)]> show variables like 'character_set_%'; +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+
临时修改数据库的编码格式
修改除了character_set_filesystem之外的其他变量的编码格式为utf;
MariaDB [(none)]> set character_set_server='utf8'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> set character_set_database = 'utf8'; Query OK, 0 rows affected (0.00 sec)
但是,很坑的是,当重启服务后,刚才的设置就直接失效,也是挺崩溃的;大招在下面.
永久修改数据库的编码格式
配置mysql的配置文件,配置文件在/etc/my.cnf.d/目录,设置编码格式:
第一个文件修改: /etc/my.cnf.d/client.cnf
[client] default-character-set=utf8
第二个文件修改: /etc/my.cnf.d/server.cnf
# this is only for the mysqld standalone daemon [mysqld] character-set-server=utf8
上面设置完成,看似很完美,但是重启mariadb服务后,character_set_database并没有进行修改,因此,为了一步到位,直接设置character_set_database编码格式为utf8,如下:
MariaDB [(none)]> set character_set_database = 'utf8'; Query OK, 0 rows affected (0.00 sec)
重启 MariaDB
systemctl start mariadb.service #启动MariaDB systemctl stop mariadb.service #停止MariaDB systemctl restart mariadb.service #重启MariaDB systemctl enable mariadb.service #设置开机启动
码字很辛苦,转载请注明来自朱一兵的博客的《mariadb数据库输入中文乱码解决》
2018-04-17
学习文章
评论
| Theme by 暴博客 基于Z-BlogPHP搭建
文章归档
最近发表
标签