docker-mysql8.0踩坑敏感问题

2023-08-02 15:48:44 浏览数 (1)

分享下docker部署mysql8.0踩坑经历

在一次项目中想用docker部署mysql8.0出现了这种问题

数据库是有这个表的,但是项目使用的时候,就出现了这样的问题,因为编码中大写,导致请求到mysql找不到!

这是docker部署mysql的一个坑,

这里给大家提供一个标准的docker部署mysql8.0的正确流程。解决了大小写敏感问题

还踩坑你打我

#opt目录是Linux提供我们扩展的目录,可以存放用户需求的文件 mkdir -p /opt/datas/docker/mysql/conf mkdir -p /opt/datas/docker/mysql/data

配置文件

vim /opt/datas/docker/mysql/conf/my.cnf 放下面这些

代码语言:javascript复制
[client]

#socket = /usr/mysql/mysqld.sock

default-character-set = utf8mb4

[mysqld]

#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#datadir = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
lower_case_table_names=1
datadir = /opt/datas/docker/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Custom config should go here

!includedir /etc/mysql/conf.d/

run容器

代码语言:javascript复制
docker run 
--name lhc_mysql 
--restart=unless-stopped 
-it -p 3306:3306 
-v /opt/datas/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf 
-v /opt/datas/docker/mysql/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=<your password> 
-e lower_case_table_names=1 
-d mysql:8.0

这两处是解决大小写敏感问题的地方

进入容器

docker exec -it 容器id /bin/bash;

mysql -uroot -p;

这里开放连接权限 use mysql ALTER USER ‘root‘@’%’ IDENTIFIED WITH mysql_native_password BY ‘新密码’; flush privileges;

这里开放权限,让程序能连上,mysql8.0以后需要这样做,这就是标准的配置mysql8.0的过程。

0 人点赞