本篇博客主要记录在centos7当中安装mysql,并且安装完成之后使用外部客户端链接。
一、查看docker环境是否正常
在命令行使用docker search mysql
:

如果能查出来证明docker安装的没问题,然后开始下一步
二、下载mysql的镜像
拉取mysql镜像(默认是最新版本)
docker pull mysql
如果需要指定版本号,使用:
docker pull mysql:版本号
docker官网: https://hub.docker.com/
从官网tag当中可以看到mysql的一些版本号

三、查看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查看正在运行的容器:

进入mysql容器:
$ docker exec -it mysql bash
输入账号密码登录mysql:mysql -uroot -proot

#退出mysql
exit
#退出mysql容器
exit
这种情况下,mysql容器是能运行了
五、测试外部链接
在外部使用连接工具如:sqlyog或者Navicat还不能连接成功!!!
在这个过程当中,我的是报了一个1251错误。也是成功解决了。

六、解决客服端链接mysql 报1251

再次进入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、使用客户端测试;
