禅道 mysql 远程连接,远程访问禅道开源版数据库(基于docker)

navicat访问基于docker搭建的禅道的数据库,报错”2003 can't connect to MySQL server on '' (10061 'unknown error')“

79f2da80404c7265891484245a1ea0eb.png

一.开启3306端口映射

为了能够远程访问数据库,在运行镜像的时候需要把容器的3306端口映射到宿主机的3306端口

docker run --name zentao -p 80:80 -p 3306:3306 -v /data/www:/app/zentaopms -v /data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jc5201314.# -d zentao:latest

查看端口是否映射,执行命令:

docker ps

可以看到容器的3306端口映射到宿主机上:

1564786a0317721aaa02f38c00109201.png

也可以使用lsof命令查看端口状态:

lsof -i:3306

73438fd34849f1bf7c4ef13ac6c1a637.png

二.开启mysql远程访问

进入docker容器

docker exec -it zentao /bin/bash

找到MariaDB的配置文件"/etc/mysql/mariadb.conf.d/50-server.cnf",把"bind-address...."一行注释掉

51918a1c7e4af3aad57906d73e7c6101.png

接下来还要给账户分配权限,进入mysql命令行界面,输入:

select User, host from mysql.user;

host项的localhost表示该账户只能本地登录:

5e5c264b3f8c09c19122e2e3eda5eeef.png

输入命令修改host(password字段为数据库密码):

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

保存更改:

FLUSH PRIVILEGES;

执行完之后再次查看host项:

41c94d165cad141f6a6a2eab88be648b.png

因为docker每次重启都会用image镜像重新创建容器,所以不能直接重启docker,直接重启会导致设置失效。

利用commit命令将容器生成一个新的镜像(container修改为自己的容器id)

docker commit 'containerid' zentao2

关闭旧的容器:

docker kill zentao

删除旧的容器:

docker rm zentao

用新镜像生成新的容器:

docker run --name zentao -p 80:80 -p 3306:3306 -v /data/www:/app/zentaopms -v /data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jc5201314.# -d zentao2

连接成功!

1a82fe72a5cfe48cb4e5b28cdd3836d1.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值