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

一.开启3306端口映射

下载安装包,构建镜像可以参考官方文档:https://www.zentao.net/book/zentaopmshelp/303.html

为了能够远程访问数据库,在运行镜像的时候需要把容器的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端口映射到宿主机上:

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

lsof -i:3306

二.开启mysql远程访问

进入docker容器

docker exec -it zentao /bin/bash

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

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

select User, host from mysql.user;

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

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

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

保存更改:

FLUSH PRIVILEGES;

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

因为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

连接成功!

最新文章

  1. WinNTSetup v3.8.7 正式版绿色增强版
  2. UIControl
  3. ViewStub的简单用法和说明
  4. TYVJ1427 小白逛公园
  5. 清除div中内容
  6. Qt之读取配置文件
  7. HDU 2340 Obfuscation(dp)
  8. 认识OD的两种断点
  9. TIMESTAMP 与 explicit_defaults_for_timestamp
  10. delphi 简单的删除字符串尾部数字的代码
  11. AFNetworking实现 断点续传
  12. JS学习笔记-数组
  13. 使用JavaEE的ServerAuthModule模块和web.xml进行相应配置,实现对用户的权限控制
  14. 动手实现linux中的cp命令(可自行拓展)
  15. android AVD 启动时报错
  16. 非关系型数据库之Redis
  17. 整数对(hdu1271)找规律
  18. 第11月第31天 keyboardwillshow CGAffineTransformMakeTranslation
  19. MVVM架构简单使用
  20. 从汇编的角度看待const与#define

热门文章

  1. SPOJ 10707 COT2 - Count on a tree II
  2. ERROR 1130 (HY000): Host '127.0.0.1' is not allowed to connect to this MySQL server
  3. 【Amaple教程】4. 组件
  4. Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1) E. Vasya and Good Sequences(DP)
  5. 题解 [CF891C] Envy
  6. 利用Python+Redis实现分布式锁
  7. CodeForces Good Bye 2016
  8. CF985C
  9. django 快速实现注册(四)
  10. 14.链表中倒数第k个结点 Java