Docker安装Mysql并远程连接

Docker安装Mysql

1、查找并下载镜像

docker search mysql
默认为最新版本

下载镜像(如上一步,可以指定想要的版本,不指定则为最新版)

docker pull mysql

2、通过镜像创建容器并运行

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

解释:

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码,这里设置初始密码为123456。

3、进入容器,设置允许远程连接

3.1查看运行的mysql

docker ps

在这里插入图片描述
3.2进入容器

docker exec -it 6d8732c72758 /bin/bash

其中6d8732c72758 为红框对应id,改值可用name替代。这里可以使用mymysql替代
在这里插入图片描述
3.3进入mysql

mysql -uroot -p

输入密码

3.4授权

GRANT ALL ON *.* TO 'root'@'%';

3.5更新加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

3.6修改root密码(如果不修改可以省略)

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

3.7刷新权限

flush privileges;

3.8重启服务器自启动

docker update --restart=always 镜像id

4、开放端口

如果开启防火墙,需要开放3306端口。配置方法点击
开放端口

4、云服务器安全组配置

不进行安全组配置,会报错,报错信息:
Docker安装Mysql并远程连接_第1张图片
云服务器阿里云添加3306端口即可(这里是阿里云):
Docker安装Mysql并远程连接_第2张图片
配置完成后,使用navicate,连接成功。
Docker安装Mysql并远程连接_第3张图片

你可能感兴趣的:(Docker,centos,docker)