因为linux下的mysql默认区分大小写,而windows下的mysql默认不区分,所以关联的时候,有时候会出问题,所以我们要取消linux小的区分大小写。
目录
5. 查看"lower_case_table_names"变量值
二. 修改mysql配置文件,导致docker无法启动mysql容器的解决方案
三. 解决大小写敏感问题后,导致数据库无法删除,报error:39的解决方案
一. mysql大小写解决方案
注意:以下方案是在取得root权限下进行的,没有权限可能会导致启动docker失败
取得root权限命令:
su root
1. 启动docker
service docker start
2. 运行mysql容器
docker start mysql
注意:mysql是指容器的名字,每个人应该有些差别,我的是mysql,有些人的是mysql_test,注意一下这一点。以下皆以容器名mysql操作
3. 进入mysql容器
docker exec -it mysql /bin/bash
或者
docker exec -it mysql bash
4. 登录mysql
mysql -uroot -p123456
注意每个人的root密码可能不同
5. 查看"lower_case_table_names"变量值
show global variables like '%lower_case%';
这里0代表区分大小写,1代表不区分大小写(系统会自动将所有大写转成小写)。
接下来我们要做的就是将0改为1。
6.回到docker容器下
两种方案:一种是用exit和cd ..一路返回;另外一种是直接关闭当前终端,新开一个终端,本文在这里采用第二种方案
回到mysql容器下,相关命令不在赘述,直接看下图
7. docker中安装vim工具(已有的可跳过此步骤)
可能在vim时会包未找到vim命令,因为在docker中现在还没有安装vim
apt-get update
apt-get install -y vim
此处手动无图.....(由于之前已经安装过,卸载较为麻烦,各位加油)
8. 编辑相关配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
本文为了谨慎起见(操作不熟练),分步进行,各位可直接一步到位
追加配置:
lower_case_table_names=1
保存,然后退出容器
exit
9. 重启Mysql Docker容器:
docker restart mysql
10. 验证修改是否成功
参考以上步骤1-5
二. 修改mysql配置文件,导致docker无法启动mysql容器的解决方案
1. 查看容器内部的详细信息
docker inspect mysql
找到MergeDir这行:
2. 进入到相关目录下
切换到MergeDir的上一级路径:
3. 修改相关配置文件(删除之前添加的所有配置信息):
vim diff/etc/mysql/mysql.cnf
这里分步进行,各位可一步到位
然后进入删除相关信息,重新按照上面教程操作进行添加即可。
三. 解决大小写敏感问题后,导致数据库无法删除,报error:39的解决方案
1. 进入相关目录
进入mysql容器后(不再赘述操作,如果忘记请看方案一),进入到/var/lib/mysql文件夹下
cd /var/lib/mysql
2. 删除目录下所有文件
文件夹下是所有的数据库名,进入要删除的数据库文件夹下,删除里面所以内容即可(不要删除数据库文件夹本身)
这里举个例子:
3. 删除相关数据库
到了这里,问题已经成功解决,接下来利用远程连接工具,或者命令行,就可以删除该数据库了。
四.本文参考的其他文档的链接
Mysql大小写敏感设置(Docker版)_混沌人的博客-CSDN博客_docker mysql大小写敏感开关
docker修改已部署容器的配置文件(mysql举例)_SnowDujc的博客-CSDN博客_docker 修改容器配置文件
https://blog.csdn.net/qq_34412985/article/details/107980885
感谢大家的浏览,如果您好任何宝贵的意见或者建议,请在评论区留言,如果喜欢,请点赞收藏加关注,谢谢大家~