1、Docker 安装 MySQL

详细的安装过程可见菜鸟教程(https://www.runoob.com/docker/docker-install-mysql.html

1)拉取镜像

docker pull mysql:latest

2)查看本地镜像

docker images

3)运行容器

安装完成后,我们可以使用以下命令来运行 mysql 容器:

$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明:

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

4)安装成功

通过 docker ps 命令查看是否安装成功:

 

2、对mysql添加远程登录(重要)

1)查询出docker容器中mysql的container_id

docker ps 

2)登录mysql容器,其中mysql就是上面查出来的container_id

docker exec -it mysql bash
mysql -uroot -p

3)授权

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

4)刷新权限

flush privileges;

5)此时,还不能远程访问,因为Navicat/sqlou只支持旧版本的加密,需要更改mysql的加密规则

   更改加密规则 password就是启动容器的时候的密码

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

6)更新root用户密码 

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

7)刷新权限并退出

flush privileges;
exit;//退出mysql

示例

3、建立连接

1)首先确定虚拟机IP

详见(https://blog.csdn.net/qq_35854212/article/details/90749650)

在终端输入命令: ifconfig -a 即可,其中centos的ip地址是ens33条目中的inet值,在navicat for MySQL中需要输入的IP

然后选择连接

2)其他注意事项

1、虚拟机中网络适配器要选择桥接模式,可在虚拟机-》设置-》网络适配器中更改

2 、注意虚拟机防火墙的设置(简单点的话可直接将虚拟机中的防火墙关了)

执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示FirewallD is not running,如下图所示。

centos出现“FirewallD is not running”怎么办

通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

centos出现“FirewallD is not running”怎么办

通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

centos出现“FirewallD is not running”怎么办

再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

centos出现“FirewallD is not running”怎么办

如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

centos出现“FirewallD is not running”怎么办

再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。

centos出现“FirewallD is not running”怎么办步骤阅读

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐