解决linux系统中的docker-mysql数据库,区分大小写的问题
最近研究docker比较勤,偶然发现,我项目的数据库改成服务器上的docker容器中的数据库,就会给我报错
说是没得这表,这数据库啥的
我检查之后发现,除了大小写,没有任何问题
这样也让我发现了,原来linux中的mysql数据库是区分大小写的
发现了就得解决
这次的问题分2种
1、普通安装在linux系统中的mysql
这个非常简单,我们只要找到配置文件my.cnf,然后在其中添加
lower_case_table_names=1
这行代码上去了就能够修改它的大小写敏感了
当然了,修改之后记得重启mysql
systemctl restart mysql
当然这是centos的
很简单就能完成了
2、docker容器中的mysql
2.1.1、进入容器内修改
找到容器内的mysql的配置文件 my.cnf,一般在/etc/mysql中
重复1的操作即可
2.2、容器搭建之初就解决
2.2.1、使用挂载的方式
先创建几个文件夹比如说
mkdir -p /home/mysql/conf
事先编写好一个my.cnf
网上的模板很多,我就不放了
在创建容器之初,比如我拉取最新的mysql之后
docker run --name mysql8 -itdp 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 \
-v /home/mysql/conf:/etc/mysql \
mysql
这样也能够实现
2.2.2、在命令行中修改
创建的时候,直接将对大小写的修改写入进去
docker run --name mysql5.7.25 -itdp 3307:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7.25 --lower_case_table_names=1
这样也能解决,也是最快的
3、使用docker ps 解决,我觉得跟挂载很像
首先我们需要启动容器
然后进入容器
docker start mysql8
docker ps /home/mysql/conf/my.cnf mysql8:/etc/mysql
/home/mysql/conf/my.cnf 文件需要提前创好
以上是解决问题的方法,有问题评论