Azerothcore运行db_assembler.sh报错ERROR 1045 (28000):acore用户本地访问被拒绝
db_assembler.sh acore用户访问被拒绝解决方案
数据库连接权限排查
- 授权完成后必须执行
FLUSH PRIVILEGES;刷新权限规则,确保配置生效。 - 确认
acore用户的授权访问地址和脚本连接地址匹配:MySQL/MariaDB中localhost和127.0.0.1是两个独立的访问来源,如果你只授权了acore@localhost,但脚本配置的数据库地址是127.0.0.1,会触发权限拒绝,需要补充对应地址的授权,或者统一脚本的连接地址为localhost。 - 检查是否存在匿名用户
''@localhost,MySQL的用户匹配规则会优先匹配更精确的条目,匿名用户会导致acore从本地访问时被误识别为匿名用户,执行DROP USER IF EXISTS ''@localhost;删除后重试即可。 - 手动执行连接命令验证有效性:
mysql -u acore -p'你的acore用户密码' -h 脚本配置的数据库地址 acore_auth,如果该命令无法正常登录,说明是连接配置本身的问题,和脚本逻辑无关,先解决连接问题再运行脚本。 - 注意密码的特殊字符转义:如果
acore用户的密码包含$、!、&等shell特殊字符,脚本中如果没有用单引号包裹密码,会被shell解析为变量/指令,导致实际传入数据库的密码错误,触发拒绝访问。 - 检查数据库是否开启了
skip-name-resolve配置,该配置会导致所有基于主机名的权限规则失效,需要改用IP地址授权或者关闭该配置。
脚本配置排查
- 确认脚本读取的数据库配置文件路径正确,不存在读取旧的、错误的配置文件的情况,部分环境下脚本会优先读取当前目录下的私有配置,优先级高于全局配置。
- 检查脚本逻辑是否存在访问
acore_auth、world、characters之外的数据库的操作,如果有需要补充acore用户对对应库的访问权限。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

