docker 安装 mysql 远程连接_Docker下安装MySQL并远程连接完整解决方案

本文介绍如何使用Docker部署MySQL容器,并实现远程连接。包括启动Docker服务、下载MySQL镜像、配置容器参数、设置密码策略及解决连接问题。

一、启动docker

systemctl start docker

二、下载MySQL 默认最新版本(如果对版本没有要求的话可以直接下载最新版)

docker pull mysql

等一会儿就下载好了,然后我们看一下docker中的镜像

docker images

135e60e66628f30f577945509598d95c.png

三、启动MySQL

docker run --restart=always --name test_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time_zone='+8:00'//以下是注释 不要复制--restart=always:设置为开机启动--name test_mysql:自定义的名称-p 3306:3306:端口映射-e MYSQL_ROOT_PASSWORD=设置密码-e TZ=Asia/Shanghai:设置时区-d mysql:指定镜像--character-set-server=utf8mb4:指定字符集--collation-server=utf8mb4_unicode_ci:指定字符集--default-time_zone='+8:00':默认时区

启动之后我们看一下运行情况

docker ps

0985342c1b798dfe47144d784f6c5d49.png

四、远程连接

首先我们去配置一下云服务器安装组,开放3306端口,然后docker中也要开启3306端口

//开启3306端口firewall-cmd --zone=public --add-port=3306/tcp --permanent//重启防火墙firewall-cmd --reload

因为我们安装的是最新版,而最新版的mysql密码验证有更改,Navicat如果不是最新版的话,就验证不过去,这个时候我们要进入MySQL中设置一下

//进入test_mysql 的命令行模式 这里的test_mysql 就是刚刚起的那个名字docker exec -it test_mysql bash//默认进入root用户下root@xxxxxx:/#//进入mysql命令,回车输入docker-mysql密码mysql -u root -p//进入mysql数据库表use mysql;//修改密码方式alter user 'root'@'%' identified with mysql_native_password by '这里是你的密码';//完事 Ctrl+D连按两次回到主界面

这个时候回到Navicat 再次连接,连接成功!

### 安装配置 Docker 中的 MySQL 支持远程连接 #### 配置 Docker 软件仓库 为了安装 Docker,在 CentOS 上可以先通过 `yum-config-manager` 添加 Docker 的官方软件仓库[^1]。 ```bash [root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ``` #### 启动 MySQL 容器 可以通过以下命令拉取运行 MySQL 容器: ```bash docker run --name=mysql-server -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:latest ``` 上述命令会创建一个名为 `mysql-server` 的容器,设置 root 用户密码为 `root`,同时将主机的 3306 端口映射到容器内的 3306 端口[^2]。 #### 修改 MySQL 权限以支持远程访问 进入正在运行的 MySQL 容器内部环境后,登录 MySQL 数据库对用户权限进行调整以便允许远程连接[^3]。 ##### 步骤一:进入 MySQL 容器 找到目标容器 ID 或名称通过如下方式进入该容器: ```bash docker exec -it mysql-server /bin/bash ``` ##### 步骤二:登录数据库 执行以下命令来登录 MySQL 数据库: ```sql mysql -uroot -proot ``` ##### 步骤三:更改用户权限 更新用户的 host 属性使其能够接受来自任意 IP 地址的请求。例如,对于 root 用户可执行下面 SQL 命令之一: ```sql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; flush privileges; ``` 或者更简单的方式是重新定义密码: ```sql ALTER USER 'root'@'%' IDENTIFIED BY 'new_strong_password'; flush privileges; ``` #### 编辑 MySQL 配置文件 (my.cnf) 如果需要进一步优化绑定地址,则需编辑 `/etc/mysql/my.cnf` 文件中的 bind-address 参数改为监听所有网络接口(即设为 `bind-address=0.0.0.0`)。完成后重启服务即可生效。 最后确认防火墙已开放相应端口号以及 SELinux 设置不会阻止外部流量到达此服务器上的 MySQL 实例。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值