目录
1.下载镜像
# 指定版本
docker pull mysql:5.7
# 最新版本
docker pull mysql:latest
2.docker容器文件挂载与端口映射
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7 \
--lower_case_table_names=1
参数说明
–name :为我们当前启动的容器命名
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v/mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机,通过在linux就可以查看了
-v /mydata/mysg/log:/ar/log/mysql:将日志文件夹挂载到主机
-v /mydata/myq/data/var/ib/mysql/:将配置文件夹挂载到主机
-e TZ=Asia/Shanghai 设置时区
-e MYSQL ROOT PASSWORD=root: 初始化root用户的密码
-d:后台启动 版本为5.7的mysql的镜像
--lower_case_table_names=1 忽略数据库大小写
3.登录mysql
4.连接工具连接mysql
记得服务器防火墙打开3306端口
5.密码忘记重置
1.进入容器
docker exec -it mysql /bin/bash
2.调整MySQL配置文件,设置跳过权限控制
echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf
3.退出重启容器
exit
docker restart mysql
4.进入容器
docker exec -it mysql /bin/bash
5.登录 mysql(无需密码)
mysql -u root
6.更新权限
flush privileges;
7.修改密码
alter user 'root'@'localhost' identified by '{新的密码}';
alter user 'root'@'localhost' identified by 'root';
8.退出/替换掉刚才加的跳过权限控制的语句
exit
sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf
9.退出重启容器
exit
docker restart mysql