一、需求背景
由于Mysql 5.7在项目中存在被扫描出的漏洞,故考虑升级到MySQL 8以上版本,采用docker进行部署,并适配此前Mysql 5.7配置文件
二、服务部署
1、创建挂载目录
mkdir -p /home2/mysql8/confmkdir -p /home2/mysql8/logmkdir -p /home2/mysql8/data
2、拉取镜像、运行容器
docker run --privileged=true -d -v /etc/localtime:/etc/localtime:ro -v /home2/mysql8/log:/var/log/mysql -v /home2/mysql8/data:/var/lib/mysql -v /home2/mysql8/conf:/etc/mysql/conf.d --name mysql8 -e MYSQL_ROOT_PASSWORD=YinLing_2024 -p 3308:3306 -d mysql:8.0.36或者参考以下启动命令:
docker run -p 3306:3306 --name mysql --restart=always --privileged=true-v /usr/local/mysql/log:/var/log/mysql-v /usr/local/mysql/data:/var/lib/mysql-v /usr/local/mysql/conf:/etc/mysql/conf.d-v /etc/localtime:/etc/localtime:ro-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

3、处理报错
1)不区分大小写参数lower_case_table_names导致运行报错:
运行 MySQL 8之前就要修改好,运行之后不支持修改该参数。
2)sql_mode参数导致报错
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ZERO_DATE,NO_ZERO_IN_DA TE,ERROR_FOR_DIVISION_BY_ZERO原MySQL 5.7中配置如上,8版本可能部分不支持,将其注释掉。
3)query_cache_相关参数报错
报错信息:2024-01-22T08:49:17.874864+08:00 0[ERROR] [MY-000067] [Server] unknown variable 'query_cache_limit=1048576'.
MySQL 8.0版本中,query_cache_limit 这个系统变量已经被废弃,不再被支持。
将其注释掉。
#query_cache_limit=1048576#query_cache_size=1024M#query_cache_type=OFF#query_cache_wlock_invalidate=OFF
二、连接测试
mysql -uroot -P3308 -p -h192.168.3.104

1、查询版本信息:SELECT VERSION();
mysql> SELECT VERSION();+-----------+| VERSION() |+-----------+| 8.0.36 |+-----------+1 row in set (0.00 sec)
2、查询是否区分大小写:
SHOW VARIABLES LIKE 'lower_case_table_names';
mysql> SHOW VARIABLES LIKE 'lower_case_table_names';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| lower_case_table_names | 1 |+------------------------+-------+1 row in set (0.01 sec)
根据查询结果,lower_case_table_names的值为1,表示MySQL不区分大小写。如果需要区分大小写,可以将该值设置为0。
3、查询是否开启binlog:
SHOW VARIABLES LIKE 'log_bin';
mysql> SHOW VARIABLES LIKE 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin | ON |+---------------+-------+1 row in set (0.00 sec)

