Docker安装AzerothCore后无法打开数据库,如何访问auth、world等表
Docker版AzerothCore数据库访问及数据备份方案
方法1:直接通过Docker容器内置MySQL客户端操作
这是无需修改现有配置就能直接操作数据库的最快方式:
- 执行
docker ps查看运行中的容器,找到AzerothCore的数据库容器,默认名称为ac-database - 执行以下命令直接进入MySQL交互终端:
docker exec -it ac-database mysql -u acore -p - 输入默认密码
acore即可完成登录,直接操作auth、world、characters库,可执行更新realmlist、查询修改数据等所有操作
方法2:修复外部SQL客户端(SQLyog/HeidiSQL)连接问题
无法用外部工具连接大概率是Docker端口映射未开启,按以下步骤配置即可:
- 找到你的AzerothCore部署目录下的
docker-compose.yml文件,定位到database服务配置段 - 找到
ports配置项,取消- "3306:3306"行的注释(如果该行不存在直接添加即可) - 执行
docker-compose up -d重启容器使配置生效 - 打开SQLyog/HeidiSQL,新建连接时填写以下信息即可成功连接:
- 地址:
127.0.0.1(请勿使用localhost,避免默认走本地套接字导致连接失败) - 端口:
3306 - 用户名:
acore - 密码:
acore
- 地址:
- 如果你是在云服务器部署的实例,需额外放通服务器防火墙的3306端口,不要直接将3306端口暴露到公网,建议通过SSH隧道方式连接。
自定义数据备份方案
要避免数据库更新时丢失角色等自定义数据,可直接通过mysqldump命令导出对应库:
- 导出
characters角色库到宿主机当前目录:docker exec ac-database mysqldump -u acore -pacore acore_characters > characters_backup.sql - 如果
auth、world库有自定义修改,也可以用同样逻辑导出:docker exec ac-database mysqldump -u acore -pacore acore_auth > auth_backup.sql docker exec ac-database mysqldump -u acore -pacore acore_world > world_backup.sql - 数据库更新完成后,直接将备份的SQL文件导入即可恢复自定义数据。
内容的提问来源于stack exchange,提问作者Peter Ashley
相关产品推荐
相关产品推荐

