首先在DockerHub上找到mysql的镜像,我找的是这个mysql/mysql-server
根据里边文档介绍:
1. 拉取最新的镜像。目前是8.0的mysql-server(不带tag默认是latest标签)
docker pull mysql/mysql-server
2. 运行mysql容器(这里--name表示容器名字,-e MYSQL_ROOT_PASSWORD=root表示将root密码设置为root,-p 3306:3306表示将docker内部容器的端口3306映射到本机的3306端口)
docker run -d -p 3306:3306 --name=mysql-server -e MYSQL_ROOT_PASSWORD=root mysql/mysql-server
3. mysql-server镜像里边自带了mysql client的镜像,可以直接通过docker命令进行连接:
docker exec -it mysql-server mysql -uroot -proot
4. 由于MySQL8.0使用了caching_sha2_password
的加密方式。而5.7,5.8使用的是mysql_native_password
的加密方式
FAQ:
- 连接出错 "Host '192.168.56.1' is not allowed to connect to this MySQL server"
这个问题是MySQL的原因是权限表默认不允许远程登陆。
此问题转自问题:not allowed to connect to MySQL- 改表法
SQL use mysql; update user set host = ‘%’ where user = ‘root’; select host, user from user; flush privileges;
授权法
GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
- 改表法