[ERROR] COLLATION ‘utf8_unicode_ci‘ is not valid for CHARACTER SET ‘latin1‘

复制代码
[ERROR] COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'

错误来源是:

跟着b站的谷粒商城项目做,前面的视频中设置了数据库的字符集编码,但是后面自己发现了MySQL容器重启报错,不停的在重启

查看log信息可以使用命令:docker logs 容器id

错误如下:

也就是说,前面我在

设置的如下字符集编码内容是有问题

复制代码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

删除my.cnf文件MySQL容器又可以正常启动

解决方法:

复制代码
vi /mydata/mysql/conf/my.cnf

把my.cnf文件做出如下修改

复制代码
[client]
default_character_set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
skip-character-set-client-handshake
skip-name-resolve

重启MySQL容器

复制代码
docker restart mysql

进入容器内部查看

复制代码
docker exec -it mysql /bin/bash

修改字符集编码成功,退出容器重启MySQL也不存在报错

默认MySQL5.7的字符集编码是:

复制代码
show variables like 'character\_set\_%';

注意

docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

相关推荐
好奇的菜鸟16 小时前
如何在Ubuntu上检查MySQL是否启动并放开3306端口
mysql·ubuntu·adb
OneT1me16 小时前
adb shell中执行system用户权限命令的方法
adb
Polaris_YJH16 小时前
360安全卫士占用5037端口(ADB端口)解决方案
adb·端口占用·5037
元媛媛1 天前
什么是持续集成/持续交付(CI/CD)?
ci/cd
学习溢出1 天前
【网络安全】持续监控CI/CD:自动发现威胁与IoCs,软件供应链安全
运维·安全·web安全·网络安全·ci/cd
雨之小11 天前
RK3588调试之旅:adbd服务配置全攻略
adb·rk3588
Chrison_mu11 天前
python运行android adb命令获取版本号
android·python·adb
奔跑吧邓邓子12 天前
一文吃透ADB,从入门到精通
adb·从入门到精通
鹏说大数据13 天前
MySQL5.7 慢查询SQL语句集合
android·sql·adb
‌Freiheit14 天前
[持续集成]
ci/cd