AzerothCore启动报错1046:未选择数据库问题求助
解决AzerothCore Worldserver数据库初始化失败问题
核心问题定位
报错ERROR 2005 (HY000): Unknown server host '-u'是因为MySQL命令参数被错误解析,将-u识别成了主机名,说明worldserver的数据库连接配置格式不符合要求,导致自动填充数据库的命令执行失败;而[1046] No database selected则是数据库池未正确关联指定库,本质根源都是配置错误。
具体修复步骤
1. 修正worldserver.conf的数据库配置格式
打开worldserver.conf(通常位于/etc/azerothcore/或编译目录的etc文件夹下),找到数据库相关配置段,确保格式完全合规:
- 每个数据库配置项需明确按
主机地址;端口;数据库用户名;数据库密码;数据库名称的顺序填写,不要添加多余引号或空格 - 正确配置示例:
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth" WorldDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_world" CharacterDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_characters"
2. 手动执行数据库填充脚本
若自动填充仍异常,可跳过worldserver自动流程,手动完成数据库初始化:
- 登录MySQL:
mysql -u acore -p - 依次创建并导入数据库文件:
CREATE DATABASE acore_auth; CREATE DATABASE acore_world; CREATE DATABASE acore_characters; USE acore_auth; SOURCE /你的AzerothCore源码目录/data/sql/base/auth_database.sql; USE acore_world; SOURCE /你的AzerothCore源码目录/data/sql/base/world_database.sql; USE acore_characters; SOURCE /你的AzerothCore源码目录/data/sql/base/characters_database.sql;
3. 确认数据库权限配置
确保acore用户拥有三个数据库的完整权限:
GRANT ALL PRIVILEGES ON acore_auth.* TO 'acore'@'localhost'; GRANT ALL PRIVILEGES ON acore_world.* TO 'acore'@'localhost'; GRANT ALL PRIVILEGES ON acore_characters.* TO 'acore'@'localhost'; FLUSH PRIVILEGES;
4. 重启worldserver
完成上述操作后,重启服务:
systemctl restart azerothcore-worldserver
或直接运行编译生成的worldserver二进制文件。
内容的提问来源于stack exchange,提问作者b0b
相关产品推荐
相关产品推荐

