安装mysql5.7
1.指定版本号:
sudo docker pull mysql:5.7
2.镜像拉取完成后,用该镜像创建mysql实例,使用下面的命令来创建
docker run -p 4422:4422 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
-p:指定指定容器与宿主机之间映射的端口
-v:这些都是宿主机与容器文件的映射地址
-e:mysql的密码是root
3.在连接服务器工具上面找到这个地方并创建my.cnf文件。
地址是这个 /mydata/mysql/conf/
这个地址是我们第二步的时候创建好了 -v /mydata/mysql/conf:/etc/mysql \
my.cnf中的内容是:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port=4422
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
![](https://img-blog.csdnimg.cn/img_convert/1a4c7b82713b3e599b8c26a93892c1ac.png)
4.重启mysql
docker restart mysql
5.进入容器中查看mysql的端口命令
docker exec -it mysql /bin/bash
6.进入mysql
mysql -uroot -proot
7.查看mysql现有端口
SHOW VARIABLES WHERE VARIABLE_NAME='port';
![](https://img-blog.csdnimg.cn/img_convert/b3e39d452afa349cfefe946effc6c2de.png)
![](https://img-blog.csdnimg.cn/img_convert/24dd370ea5f3325992bced55045826cb.png)
还有一个重要的问题是。我之前用的是阿里云的服务器,然后感觉自己都弄好了。所有防火墙都打开了但是最后用Navicat连接4422端口还是连不上原因是:阿里云因为某些安全考虑有些端口没有开放。
添加一条这个就行了。
![](https://img-blog.csdnimg.cn/img_convert/50ef6f0bfa02f5489f59c4abca0f5770.png)
![](https://img-blog.csdnimg.cn/img_convert/3a22b7a001935b3fa2f1cd2b43865281.png)