美文网首页Linux学习之路Java Web架构设计
Linux mysql 5.7.22设置中文编码-解决乱码问题

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

作者: Arison | 来源:发表于2018-05-29 09:23 被阅读2次

    异常情况:

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

    连接了Linux服务器的数据库 image.png

    成功解决问题之后:

    image.png
    image.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
    
    转载请注明出处 https://www.jianshu.com/p/1deac307a923

    参考文献:

    相关文章

      网友评论

      • mrzhqiang:咦,刚刚折腾完,用 rpm 方式安装,是有配置文件的。。。
        Arison:@mrzhqiang 你也可以写文章分享出来,学习

      本文标题:Linux mysql 5.7.22设置中文编码-解决乱码问题

      本文链接:https://www.haomeiwen.com/subject/crzgjftx.html