前言
一、MySQL7
docker run -p 3306:3306 \
--name mysql --restart always \
--mount source=mysql7.conf,destination=/etc/mysql \
--mount source=mysql7.data,destination=/var/lib/mysql \
--mount source=mysql7.log,destination=/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-d mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
参数 | 说明 |
---|
-p 3306:3306 | 将容器的3306端口映射到主机的3306端口 |
-v /usr/local/mysql/log:/var/log/mysql | 将日志文件挂载到宿主机 |
-v /usr/local/mysql/data:/var/lib/mysql | 将数据文件挂载到宿主机 |
-v /usr/local/mysql/conf:/etc/mysql | 将配置文件挂载到宿主机 |
-e MYSQL_ROOT_PASSWORD=123456 | 设置root账号的密码 |
-d mysql:5.7 | 指定使用的docker镜像 |
vi /usr/local/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
docker restart mysql
二、MySQL8
docker run -p 13306:3306 \
--name MySQL --restart=always \
--mount source=mysql.conf,destination=/etc/mysql \
--mount source=mysql.data,destination=/var/lib/mysql \
--mount source=mysql.log,destination=/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-d mysql:8.0.13 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;