一、下载镜像文件
docker pull mysql:5.7
二、根据镜像创建mysql容器
1、 创建容器内在本地的映射文件夹
mkdir -p /mydata/mysql/data /mydata/mysql/log /mydata/mysql/conf
2、 初始化mysql的配置文件*.cnf,在/root/mysql/conf
touch /mydata/mysql/conf/my.cnf
3、创建docker容器并启动,将数据,日志,配置文件映射到本机
docker run -p 3306:3306 --name mysql
-v /mydata/mysql/conf:/etc/mysql/conf.d -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.30
参数说明:
-p 3306:3306 :将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/conf:/etc/mysql :将配置文件夹挂载到主机
-v /mydata/mysql/log/mysql :将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/ :将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root :初始化root用户的密码
4、MySQL配置
vi /mydata/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=utf8mb4
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
5、进入mysql容器
docker exec -it 容器id /bin/bash
6、进入mysql
mysql -uroot -p
a: 修改登录密码
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘Caofeng2012@‘;
b: 设置允许远程登录
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘Caofeng2012@‘ WITH GRANT OPTION;
c: 刷新命令生效
flush privileges;