本篇博客主要记录在centos7当中安装mysql,并且安装完成之后使用外部客户端链接。
一、查看docker环境是否正常
在命令行使用docker search mysql
:
![](https://i-blog.csdnimg.cn/blog_migrate/1f58fdcb4a98b16641d71b2fab020a32.png)
如果能查出来证明docker安装的没问题,然后开始下一步
二、下载mysql的镜像
拉取mysql镜像(默认是最新版本)
docker pull mysql
如果需要指定版本号,使用:
docker pull mysql:版本号
docker官网: https://hub.docker.com/
从官网tag当中可以看到mysql的一些版本号
![](https://i-blog.csdnimg.cn/blog_migrate/b55766361116bf377e989a538be733d8.png)
三、查看Mysql镜像是否下载成功
查看所有镜像
docker images
四、创建Mysql容器
docker run -p 3306:3306 \
--name mysql \
-d --restart=always \
-v /data/mysql/datadir:/var/lib/mysql \
-v /data/mysql/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root \
mysql
-p 3306:3306
:将主机的3306端口和mysql容器的3306端口进行映射,外部可通过主机ip+3306访问到mysql容器。-e MYSQL_ROOT_PASSWORD
:设置mysql密码-d --restart=always
:开机自动启动容器-v
:文件挂载-name mysql
:容器名称- 最后一行这个mysql代表的镜像名称,如果下载的是指定版本的镜像,名称就不是mysql了,可以通过
docker images
查看
执行之后,使用docker ps查看正在运行的容器:
![](https://i-blog.csdnimg.cn/blog_migrate/f1ee8b71cf68340d1c286cf4d09498de.png)
进入mysql容器:
$ docker exec -it mysql bash
输入账号密码登录mysql:mysql -uroot -proot
![](https://i-blog.csdnimg.cn/blog_migrate/6fd2fb5b638a5f3f412a7fc0517545c1.png)
#退出mysql
exit
#退出mysql容器
exit
这种情况下,mysql容器是能运行了
五、测试外部链接
在外部使用连接工具如:sqlyog或者Navicat还不能连接成功!!!
在这个过程当中,我的是报了一个1251错误。也是成功解决了。
![](https://i-blog.csdnimg.cn/blog_migrate/72a644140c29a656481d526bff1ce2cd.png)
六、解决客服端链接mysql 报1251
![](https://i-blog.csdnimg.cn/blog_migrate/3f96ed98223a000f61a3dc1619275dde.png)
再次进入mysql
1、进入容器:
[root@localhost ~]# docker exec -it mysql bash
2、进入mysql:
root@2288abcb04f3:/# mysql -uroot -proot
3、对远程连接进行授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';
4、更改密码的加密规则:
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
5、更改root的密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
6、刷新权限:
mysql> flush privileges;
7、使用客户端测试;
![](https://i-blog.csdnimg.cn/blog_migrate/b00b896862ff8612354caed10509b4a2.png)