Docker 安装MySQL数据库并开启远程连接

这篇博客介绍了如何通过Docker拉取MySQL镜像并进行安装,详细步骤包括设置容器端口映射、命名容器、挂载数据卷以及设置root用户密码。此外,还讲解了如何进入容器并修改MySQL的root用户权限,允许远程连接。这对于需要远程管理MySQL数据库的开发者非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker安装MySQL数据库并开启远程连接

1.使用docker命令拉取镜像 这里以MySQL5.7版本为例

docker pull mysql:5.7

注: 如果要安装最新版本MySQL 执行命令

docker pull mysql:latest

2.查看镜像

docker images

3.在home目录下创建mysql文件夹

cd /home
mkdir mysql
cd /home/mysql

4.安装mysql

docker run -p 3306:3306 --name mysql --privileged=true \-v $PWD/conf:/etc/mysql/conf.d \-v $PWD/logs:/var/log/mysql \-v $PWD/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#命令解释:

	-p 3306:3306 暴露端口 将容器内3306端口映射到服务器端口
	--name mysql 设置容器名称
	--privileged=true 给容器加上特定权限
	-v PWD/conf:/etc/mysql/conf.d \
    -v PWD/logs:/var/log/mysql \
    -v $PWD/data:/var/lib/mysql   挂载容器文件目录到服务器文件目录
    -e MYSQL_ROOT_PASSWORD=123456 设置root用户密码
	-d mysql:5.7  后台运行
# Ubuntu 安装 非root账户要加上sudo
docker run -d --name mysql -v /home/sizhenpeng/data/mysql/data:/var/lib/mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci 

为root账号开启远程连接权限

1.查看容器id

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
bf9f65de3169        mysql:5.7           "docker-entrypoint..."   25 seconds ago      Up 24 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

2.进入容器

[root@localhost ~]# docker exec -it bf9f65de3169 /bin/bash

3.使用root用户登录MySQL数据库

root@bf9f65de3169:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

4.修改root用户权限

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)

5.刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
### 安装配置 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
发出的红包

打赏作者

Karma's a Bitch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值