1. 创建 mysql 配置文件
mkdir -p /root/docker/mysql/conf/
vim /root/docker/mysql/conf/my.cnf
- [client]
- # 客户端默认字符集
- default_character_set=utf8mb4
- [mysql]
- # 默认字符集
- default_character_set=utf8mb4
- [mysqld]
- # pid文件
- pid-file=/var/run/mysqld/mysqld.pid
- # sock文件
- socket=/var/run/mysqld/mysqld.sock
- # 数据目录
- datadir=/var/lib/mysql
- # 不区分大小 0区分 1不区分
- lower_case_table_names=1
- # 服务器时区
- default-time_zone='+8:00'
- # 服务端字符集
- character_set_server=utf8mb4
- # 字符排序规则
- collation_server=utf8mb4_general_ci
- # 默认存储引擎
- default-storage-engine=InnoDB
2. 启动容器
- docker run -d -p 3306:3306 \
- --restart always \
- --privileged \
- --name mysql \
- -e MYSQL_USER=admin \
- -e MYSQL_PASSWORD=admin123 \
- -e MYSQL_ROOT_PASSWORD=admin123 \
- -v /root/docker/mysql/logs:/var/log/mysql \
- -v /root/docker/mysql/data:/var/lib/mysql \
- -v /root/docker/mysql/conf:/etc/mysql/conf.d \
- mysql:5.7
-d 守护线程运行
-p 3306:3306 映射端口
--restart always 开机启动
--privileged 提升容器内权限
--name mysql 指定容器名称
-e MYSQL_USER=admin 指定普通用户用户名
-e MYSQL_PASSWORD=admin123 指定普通用户密码
-e MYSQL_ROOT_PASSWORD=admin123 指定root用户密码
-v /root/docker/mysql/logs:/var/log/mysql 挂载日志目录到宿主机
-v /root/docker/mysql/data:/var/lib/mysql 挂载数据目录到宿主机
-v /root/docker/mysql/conf:/etc/mysql/conf.d 挂载配置目录到宿主机
3. 进入容器
docker exec -it mysql /bin/bash
4. 查看编码集
mysql -uroot -padmin123
SHOW VARIABLES LIKE '%character%';
5. 测试navicat连接
这里需要注意防火墙是否开放3306端口