拉取镜像
docker search mysql
docker pull mysql

docker pull mysql:version
可以指定自己想要的版本进行pull
启动容器
docker images 查看镜像
docker run -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=12345 --name mysql -v mysqlData:/var/lib/mysql mysql
参数介绍
| 命令 | 描述 |
|---|---|
| -d | 后台运行 |
| -p 3306:3306 | 宿主机映射到主机端口 宿主机端口(提供外界访问): 主机端口(客户端启动端口) |
| –restart=always | 容器重启策略(随着容器一起重启) |
| -e MYSQL_ROOT_PASSWORD | 设置初始密码 |
| -v | 宿主机挂载主机上的文件 |
| –name | 设置容器的名称 |
开启远程连接
docker exec -it 容器id /bin/bash 进入容器
mysql -uroot -p 登录mysql
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’; 修改密码
flush privileges; 刷新权限开启远程
测试连接
这里使用navicat进行连接输入ip和端口用户密码
解决方案
本人在安装过程遇到的问题和一些解决方案
一 . 远程连接问题
mysql 8版本
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
flush privileges;低于8版本
update user set host=‘%’ where user=‘root’
flush privileges;
二. 密码问题
重置密码
docker exec -it 容器id /bin/bash 进入容器
echo “skip-grant-tables” >> /etc/mysql/conf.d/docker.cnf 设置跳过权限控制(所有用户都可以登录)
docker restart 容器id 重启容器
docker exec -it 容器id /bin/bash 再次进入
mysql -uroot 登录mysql(无需密码)
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
flush privileges;
修改密码
退出容器 exit
sed -i “s/skip-grant-tables/ /” /etc/mysql/conf.d/docker.cnf 替换刚才设置的跳过权限语句
docker restart 容器id 重启
本文介绍了如何使用Docker拉取并启动MySQL镜像,详细解析了启动命令参数,并指导如何开启远程连接。针对遇到的远程连接问题和密码问题提供了解决方案,包括MySQL8及以上版本和低于8版本的配置差异,以及密码重置步骤。
1470

被折叠的 条评论
为什么被折叠?



