Hello World

吞风吻雨葬落日 欺山赶海踏雪径

0%

升级AzerothCore的MySQL版本

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
2
3
[mysqld]
...
skip-log-bin

启动后连接数据库,创建对应的三个库: 直接执行源码中的 \azerothcore-wotlk\data\sql\create\create_mysql.sql 文件即可。

1
2
3
4
5
6
7
8
9
DROP USER IF EXISTS 'acore'@'localhost';
CREATE USER 'acore'@'localhost' IDENTIFIED BY 'acore' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT ALL PRIVILEGES ON * . * TO 'acore'@'localhost' WITH GRANT OPTION;
CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'localhost' WITH GRANT OPTION;

创建完之后导入备份文件,注意指定字符集 utf8mb4

1
.\bin\mysql.exe --default-character-set=utf8mb4 -uroot -p -P3306 < f:/tmp/acore_all_20230531.sql

这样数据库就已经迁移好了。

重新编译

切换了MySQL版本,所以最好是把编译使用的lib也一起更新一下。打开 CMake, 搜索mysql

20230531214100.png

这里换成新版本的MySQL目录,重新 Configure & Generate

1
2
3
4
Running cmake hook: AFTER_SRC_LOAD
No hooks registered for AFTER_SRC_LOAD
Configuring done
Generating done

点击open projects 打开VS Studio , 右击 ALL_BUILD -》 重新生成。

1
2
3
4
26>------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Release x64 ------
26>Building Custom Rule E:/games/wow-study/AzerothCore_SRC/azerothcore-wotlk/CMakeLists.txt
========== “全部重新生成”: 26 成功,0 失败,0已跳过 ==========
========= 重新生成 开始于 9:47 PM,并花费了 04:07.536 分钟 ==========

编译成功。最后别忘了把新版本的libmysql.dll 拷贝到 worldserver.exe 目录。