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


  7 [client]
  8     default-character-set=utf8

  • 第二个文件修改: /etc/my.cnf.d/server.cnf
 11 # this is only for the mysqld standalone daemon
 12 [mysqld]
 13     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)

一切ok,终于搞定!

你可能感兴趣的:(资料库)