1、拉取MySQL镜像
docker pull mysql:5.7
2、运行容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.7 # -e后面是设置MySQL密码
3、创建目录保存Mysql 的数据、配置、日志,这样删除容器时,数据也不会丢失
mkdir -p /docker/mysql && cd /docker/mysql
mkdir data log conf
4、在 conf 目录中新建 my.cnf 文件,作为 Mysql 的配置文件
[mysqld] datadir=/var/lib/mysql #(默认不是中国时区,使用的时候被坑过) default-time_zone = '+8:00' log-error=/var/log/mysql/error.log
5、重建容器
1、docker stop mysql && docker rm mysql 2、docker run --name mysql \ --restart=always \( Docker 重启时容器也跟随启动) --privileged=true \(Docker 为容器内的 root 用户赋予真正的 root 权限,不然会提示 log 目录权限不足) -p 3306:3306 \ -v /docker/mysql/conf:/etc/mysql/conf.d \(将配置目录挂载到容器内的配置目录) -v /docker/mysql/data:/var/lib/mysql \(将数据存储目录挂载到容器内的出局存储目录) -v /docker/mysql/log:/var/log/mysql \(将日志目录挂载到容器内的日志目录) -e MYSQL_ROOT_PASSWORD=12345678 \ -d mysql
6、设置允许远程访问
1、docker exec -it mysql bash 2、mysql -u root -p 3、ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678'; 4、FLUSH PRIVILEGES;