因为linux下的mysql默认区分大小写,而windows下的mysql默认不区分,所以关联的时候,有时候会出问题,所以我们要取消linux小的区分大小写。

目录

一. mysql大小写解决方案

1. 启动docker

2. 运行mysql容器

3. 启动mysql

4. 登录mysql

5. 查看"lower_case_table_names"变量值

6.回到docker容器下

7. docker中安装vim工具(已有的可跳过此步骤)

8. 编辑相关配置文件

9. 重启Mysql Docker容器:

10. 验证修改是否成功

二. 修改mysql配置文件,导致docker无法启动mysql容器的解决方案

1. 查看容器内部的详细信息

2. 进入到相关目录下 

3. 修改相关配置文件(删除之前添加的所有配置信息):

三. 解决大小写敏感问题后,导致数据库无法删除,报error:39的解决方案

1. 进入相关目录

2. 删除目录下所有文件

3. 删除相关数据库

四.本文参考的其他文档的链接


一. mysql大小写解决方案

注意:以下方案是在取得root权限下进行的,没有权限可能会导致启动docker失败

取得root权限命令:

su root

1. 启动docker

service docker start

2. 运行mysql容器

docker start mysql

centos 测试两个数大写 centos7大小写混乱_mysql

 注意:mysql是指容器的名字,每个人应该有些差别,我的是mysql,有些人的是mysql_test,注意一下这一点。以下皆以容器名mysql操作

3. 进入mysql容器

docker exec -it mysql /bin/bash
或者
docker exec -it mysql bash

 4. 登录mysql

mysql -uroot -p123456

centos 测试两个数大写 centos7大小写混乱_运维_02

 注意每个人的root密码可能不同

5. 查看"lower_case_table_names"变量值

show global variables like '%lower_case%';

 这里0代表区分大小写,1代表不区分大小写(系统会自动将所有大写转成小写)。

接下来我们要做的就是将0改为1。

6.回到docker容器下

两种方案:一种是用exit和cd ..一路返回;另外一种是直接关闭当前终端,新开一个终端,本文在这里采用第二种方案

回到mysql容器下,相关命令不在赘述,直接看下图

centos 测试两个数大写 centos7大小写混乱_centos 测试两个数大写_03

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

centos 测试两个数大写 centos7大小写混乱_mysql_04

 保存,然后退出容器

exit

centos 测试两个数大写 centos7大小写混乱_centos 测试两个数大写_05

 9. 重启Mysql Docker容器:

docker restart mysql

centos 测试两个数大写 centos7大小写混乱_centos_06

 10. 验证修改是否成功

参考以上步骤1-5

centos 测试两个数大写 centos7大小写混乱_运维_07

二. 修改mysql配置文件,导致docker无法启动mysql容器的解决方案

1. 查看容器内部的详细信息

docker inspect mysql

 找到MergeDir这行:

centos 测试两个数大写 centos7大小写混乱_mysql_08

2. 进入到相关目录下 

切换到MergeDir的上一级路径:

centos 测试两个数大写 centos7大小写混乱_centos 测试两个数大写_09

3. 修改相关配置文件(删除之前添加的所有配置信息):

vim diff/etc/mysql/mysql.cnf

centos 测试两个数大写 centos7大小写混乱_linux_10

 这里分步进行,各位可一步到位

然后进入删除相关信息,重新按照上面教程操作进行添加即可。

三. 解决大小写敏感问题后,导致数据库无法删除,报error:39的解决方案

1. 进入相关目录

进入mysql容器后(不再赘述操作,如果忘记请看方案一),进入到/var/lib/mysql文件夹下

cd /var/lib/mysql

 2. 删除目录下所有文件

文件夹下是所有的数据库名,进入要删除的数据库文件夹下,删除里面所以内容即可(不要删除数据库文件夹本身)

这里举个例子:

centos 测试两个数大写 centos7大小写混乱_centos 测试两个数大写_11

 3. 删除相关数据库

到了这里,问题已经成功解决,接下来利用远程连接工具,或者命令行,就可以删除该数据库了。