- mysql容器的最简启动
- mysql容器的时区问题
- mysql容器的数据持久化问题
- mysql容器的配置文件持久化问题
- mysql容器的sql_mode=only_full_group_by问题
一、docker启动mysql最简步骤
拉取mysql镜像
docker pull mysql:5.7.32
启动mysql容器
docker run --name mysql-demo -d -p 9906:3306 -e MYSQL_ROOT_PASSWORD=demo_123 mysql:5.7.32
--name 启动的容器名称
-d 后台运行
-e 环境变量替换,设置数据库root默认密码
-p{宿主机的端口}:{容器里的端口} 端口映射
二、设置mysql容器的【时区】、【数据持久化】、【配置文件持久化】
准备mysql配置文件
/data/mongcent/docker-config/mysql/conf/my.conf
[client]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIO
sql_mode配置,避免操作sql语句的时候,报如下错误:
- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
完整启动脚本
docker run -d \
-p 9906:3306 \
-v /data/mongcent/docker-config/mysql/conf:/etc/mysql \
-v /data/mongcent/docker-config/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=demo_123 \
-e TZ='Asia/Shanghai' \
--name mysql-demo \
mysql:5.7.32
-d 后台运行
-p{宿主机的端口}:{容器里的端口} 端口映射
-v {宿主机目录}:{容器目录} 目录映射
-e 环境变量替换
--name 容器名称
mysql变量查询
--查看mysql的数据目录
SHOW GLOBAL VARIABLES LIKE "%Datadir%";
--查看bin_log状态
SHOW GLOBAL VARIABLES LIKE "%log_bin%";