MySQL 8.0.33版本出来已经有一段时间了,AzerothCore可以升个级了。
迁移数据
首先还是先备份一下当前版本的数据,主要是三个库 acore_world / acore_characters / acore_auth 。
这里直接用 mysqldump 做导出备份即可
1 | .\bin\mysqldump.exe --single-transaction --set-gtid-purged=OFF --add-locks=false --skip-tz-utc -uroot -proot -P3306 --databases acore_world acore_auth acore_characters > f:/tmp/acore_all_20230531.sql |
生成 acore_all_20230531.sql文件后,关闭老版本的MySQL服务,启动新版本的MySQL服务(启动的时候关闭binlog: mysqld 配置最后一行加上 skip-log-bin )。
1 | [mysqld] |
启动后连接数据库,创建对应的三个库: 直接执行源码中的 \azerothcore-wotlk\data\sql\create\create_mysql.sql 文件即可。
1 | DROP USER IF EXISTS 'acore'@'localhost'; |
创建完之后导入备份文件,注意指定字符集 utf8mb4
1 | .\bin\mysql.exe --default-character-set=utf8mb4 -uroot -p -P3306 < f:/tmp/acore_all_20230531.sql |
这样数据库就已经迁移好了。
重新编译
切换了MySQL版本,所以最好是把编译使用的lib也一起更新一下。打开 CMake, 搜索mysql

这里换成新版本的MySQL目录,重新 Configure & Generate
1 | Running cmake hook: AFTER_SRC_LOAD |
点击open projects 打开VS Studio , 右击 ALL_BUILD -》 重新生成。
1 | 26>------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Release x64 ------ |
编译成功。最后别忘了把新版本的libmysql.dll 拷贝到 worldserver.exe 目录。