docker运行mysql57(版本5.7.24)
docker pull mysql:5.7.24
docker run -d --name mysql57 \
--privileged=true \
--restart=always \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/xxx/docker/mysql57/config:/etc/mysql \
-v /home/xxx/docker/mysql57/data:/var/lib/mysql \
mysql:5.7.24 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
修改时区配置(本地的时区正常后可以不配置my.cnf的default-time-zone = '+8:00'):
修改/etc/localtime使本地时间正确(对应linux的date指令正确),另外还需要修改/etc/timezone使得时区正确(对应Java以及mysql正确)
docker exec -it mysql57 /bin/bash -c 'cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime'
docker exec -it mysql57 /bin/bash -c 'echo "Asia/shanghai" >> /etc/timezone'
或者在DockerFile中加入
# 设置Docker时间为上海时区 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
修改my.cnf的配置,主要是字符集
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 init_connect='SET collation_connection = utf8mb4_unicode_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake # Custom config should go here 如果不需要引入配置目录,可以注释或删除下面这行 !includedir /etc/mysql/conf.d/
如果搭建主从或者集群添加以下
server_id=20
log_bin=mysql-bin
binlog_format=ROW