linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux

异常情况:

由于工作需要以及个人技术方面的兴趣,开始接触了之前没有接触的Linux部署应用程序一块;最近用linux安装mysql的时候,安装过程正常;但是利用mybaits写入mysql表数据的时候,发生乱码了。为此开始排查和解决乱码问题:

linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux_第1张图片

linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux_第2张图片

成功解决问题之后:

linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux_第3张图片

linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux_第4张图片

linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux_第5张图片

解决方法:

配置默认配置文件

在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

~

linux mysql 5.7 乱码_mysql 5.7.22设置中文编码-解决乱码问题 Linux_第6张图片

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

~

参考文献:

你可能感兴趣的:(linux,mysql,5.7,乱码)