Linux mysql 5.7.22设置中文编码-解决乱码问题
2018-05-29 本文已影响2人
Arison
异常情况:
由于工作需要以及个人技术方面的兴趣,开始接触了之前没有接触的Linux部署应用程序一块;最近用linux安装mysql的时候,安装过程正常;但是利用mybaits写入mysql表数据的时候,发生乱码了。为此开始排查和解决乱码问题:
连接了Linux服务器的数据库 image.png成功解决问题之后:
image.pngimage.png image.png
解决方法:
-
配置默认配置文件
在mysql 5.7.18版本及以后版本,没有默认配置文件;需要自己创建配置文件并保存在mysql 默认读取的路径下面;
查看mysql 配置文件读取命令:
/usr/local/mysql/bin/mysqld --verbose --help | grep -A 1 'Default options'
配置文件基本模板:
# [***]这个标记不能去掉,否则mysql无法识别配置文件里面的参数
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
# 需要自己在linux创建指定文件夹路径,并且赋予文件目录高权限,否则mysql会因为无法读取.sock文件而启动报错,并产生相应的报错提示
socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8
[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates
没有设置路径以及放开权限导致启动mysql报错提示:
2018-05-28T09:56:25.201315Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2018-05-28T09:56:25.201318Z 0 [ERROR] Unable to setup unix socket lock file.
2018-05-28T09:56:25.201321Z 0 [ERROR] Aborting
image.png
linux创建路径就不写了,用命令行或者是xftp工具创建都可以
socket = /var/run/mysqld/mysqld.sock
设置权限 /run/mysqld/ 就是/var/run/mysqld/mysqld.sock,一个快捷链接
chmod 777 /run/mysqld
启动mysql
bin/mysqld_safe --user=mysql &
停止mysql
mysqladmin -uroot -p shutdown
mysql配置文件中解决中文乱码的两行关键代码:
character-set-server=utf8
default-character-set=utf8
记住,在mysql配置文件配置好中文乱码之后,一定要重启mysql服务,命令上面已经给出。
配置文件存放位置:/etc/my.cnf 当然,其它路径也可以。
Last login: Mon May 28 16:08:35 2018 from 183.15.179.142
root@iZwz9hx2ppf9lebmxfezz2Z:~# /usr/local/mysql/bin/mysqld --verbose --help | grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
root@iZwz9hx2ppf9lebmxfezz2Z:~# ^C