Docker compose配置MySQL并实现远程连接
compose
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
项目地址:https://gitcode.com/gh_mirrors/compose/compose
免费下载资源
·
您需要确保您的运行环境达到了以下的要求:
- Docker Engine
- Docker CLI
- Docker Compose
docker-compose.yml
version: '3.7'
services:
mysql:
image: "mysql/mysql-server:8.0"
environment:
TZ: "Asia/Shanghai"
MYSQL_ROOT_PASSWORD: "root密码" # 设置root密码
MYSQL_DATABASE: "数据库名" # 设置数据库
MYSQL_USER: "用户名" # 增加一个MySQL用户,并启用远程连接
MYSQL_PASSWORD: "用户密码" # 设置用户密码
ports:
- "自定义映射端口:3306" # 映射,如果需要远程连接Docker中的数据库,这一步很重要
volumes: # 挂载,重新创建镜像时,数据库数据不会消失
- mysql-data:/var/lib/mysql
- ./.github/init.sql:/docker-entrypoint-initdb.d/init.sql
restart: "always"
container_name: "mysql"
远程连接效果如下:
docker内的项目连接数据库时的配置
注意
:每一个参数的名字是根据.env文件确定的。enviroment定义在容器中设置的环境变量。
environment:
APP_ENV: "${APP_ENV:-prod}"
DB_HOST: "mysql"
DB_PORT: "3306" # 因为在同一个环境,所以直接用3306端口就行
DB_USERNAME: "用户名"
DB_PASSWORD: "密码"
DB_DATABASE: "database
如果参数名字有误,可能会报密码错误或者拒绝连接的错误,注意检查参数。
docker exec
// 进入docker的 mysql
docker exec -it mysql mysql -uroot -p //
// 设置远程
use mysql;
// 查看当前用户
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| healthchecker | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
7 rows in set (0.00 sec)
update user set host='%' where user='root'; // 开启远程连接。但是一般建议建个新用户再设置
ALTER USER 'root'@'%' IDENTIFIED BY '密码'; // 如果密码错误时,可以修改密码
// 刷新数据库
flush privileges;
// centos开放3306端口,如果开启了映射,记得开启映射的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=映射端口/tcp --permanent // 开启映射的端口
// 重启centos的防火墙
systemctl restart firewalld.service
// 远程连接测试时数据库后面加:?allowPublicKeyRetrieval=true(用DBeaver时需要加)
否则会报错:
Public Key Retrieval is not allowed
GitHub 加速计划 / compose / compose
33.27 K
5.15 K
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:2 个月前 )
501b5acd
Add `jhrotko` to Core Maintainers.
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
7 天前
f51bc4cd
Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
7 天前
更多推荐
已为社区贡献1条内容
所有评论(0)