• 【Linux 下 MySQL5.7 中文编码设置】


    前言

            原本要使用 Sqoop 把我 MySQL 的数据导入到 HBase 中,习惯了使用 windows 下的 MySQL 8.0 版本,但是用 Sqoop 从windows 传到 linux 下有点复杂,就索性用我自己之前没用过的 linux 下的 MySQL 5.7,结果果然一堆问题:中文数据插入失败,修改配置文件导致 mysql 启动失败...

    解决办法

    1、修改配置文件 my.cnf

    我的配置文件在 /etc/my.cnf (我的安装路径不是那,它应该是自动把配置文件放到那里的)。

    1. #/etc/my.cnf
    2. [client]
    3. default-character-set=utf8
    4. [mysqld]
    5. datadir=/var/lib/mysql
    6. socket=/var/lib/mysql/mysql.sock
    7. user=mysql
    8. # Disabling symbolic-links is recommended to prevent assorted security risks
    9. symbolic-links=0
    10. #default-character-set=utf8
    11. character-set-server=utf8
    12. init_connect='SET NAMES utf8'
    13. [mysql]
    14. no-auto-rehash
    15. default-character-set=utf8
    16. [mysqld_safe]
    17. log-error=/var/log/mysqld.log
    18. pid-file=/var/run/mysqld/mysqld.pid

            可以直接复制,基本上没啥问题,不放心的可以核对一下 datadir、socket、log-file 和 log-error 的路径和原 my.cnf 中的路径是否一致。

            不要随便添加内容,否则一不小心配置失败就进不去 MySQL 了。

    2、重启MySQL服务

    systemctl restart mysqld.service

    如果你上面的配置文件中有想当然或者自由发挥的内容,那么很容易在这里报错:Job for mysqld.service failed because the control process exited with error code. See systemctl status mysqld.service and journalctl -xe for details.

    查看编码信息

    show  variables like 'character%';

    修改成功的话应该是这样的: 

    3、重新创建数据库 

    即使你完成了上一步操作,这时你向表中插入中文数据依然可能会失败,因为你的数据库编码仍然是 latin1 (默认的)。

    所以一定要删除原数据库,重新创建一遍!!!

    参考

    参考文章:http://t.csdnimg.cn/AVUqw

  • 相关阅读:
    优化------聊聊缓存
    Linux入门---页表的理解
    FFmpeg入门详解之17:音频深度学习
    电路方案分析(十三)采用 CAN 的汽车分立式 SBC 预升压、后降压参考设计方案
    QML-编辑框的使用
    学生成绩管理系统(C语言课设 )
    P8218 【深进1.例1】求区间和
    Oracle 客户体验 (Oracle CX) 怎么样?
    MySQL数据库——MySQL GRANT:用户授权
    合并两个排序的链表
  • 原文地址:https://blog.csdn.net/m0_64261982/article/details/133676512