解决TrinityCore启动报错:MySQL库版本不匹配
问题描述
在启动TrinityCore时,遇到如下错误提示:
MySQL library version (8.0.37 id 80037) does not match
该错误通常是由于TrinityCore使用的MySQL客户端库版本与系统安装的MySQL服务器版本不一致引起的。

解决方法
为了解决这个问题,需要确保TrinityCore使用的MySQL客户端库版本与MySQL服务器版本一致。以下是详细的解决步骤。
1. 检查MySQL版本
首先,检查系统上安装的MySQL服务器版本和客户端库版本。
mysql --version
示例输出:
mysql Ver 8.0.37 for Linux on x86_64 (MySQL Community Server - GPL)
2. 安装匹配版本的MySQL客户端库
确保安装了与MySQL服务器版本匹配的MySQL客户端库。可以通过以下命令安装特定版本的MySQL客户端库。
2.1 更新包列表并安装MySQL客户端库
sudo apt-get update
sudo apt-get install libmysqlclient-dev
如果需要特定版本的库,可以使用版本号指定安装。例如:
sudo apt-get install libmysqlclient-dev=8.0.37-1ubuntu18.04
3. 编译TrinityCore
在安装了正确版本的MySQL客户端库之后,需要重新编译TrinityCore,使其链接到正确的MySQL库。
3.1 获取TrinityCore源码
如果尚未获取TrinityCore源码,可以使用以下命令从GitHub克隆:
git clone https://github.com/TrinityCore/TrinityCore.git
cd TrinityCore
3.2 配置CMake
配置CMake,确保其使用正确的MySQL客户端库路径。
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/path/to/trinitycore -DWITH_WARNINGS=1 -DWITH_COREDEBUG=1 -DMYSQL_LIBRARY=/usr/lib/x86_64-linux-gnu/libmysqlclient.so
注意:/usr/lib/x86_64-linux-gnu/libmysqlclient.so是MySQL客户端库的路径,可能因系统不同而有所不同,使用 find命令查找库路径:
find /usr -name libmysqlclient.so
3.3 编译并安装
make
sudo make install
4. 验证安装
启动TrinityCore并检查是否仍然报错。
/path/to/trinitycore/bin/worldserver
如果没有报错,说明问题已解决。
分析与说明表
| 步骤 | 命令或操作 | 描述 |
|---|---|---|
| 检查MySQL版本 | mysql --version |
确认当前MySQL服务器版本 |
| 安装MySQL客户端库 | sudo apt-get install libmysqlclient-dev |
安装匹配的MySQL客户端库 |
| 获取TrinityCore源码 | git clone https://github.com/TrinityCore/TrinityCore.git |
从GitHub获取TrinityCore源码 |
| 配置CMake | cmake ../ -DCMAKE_INSTALL_PREFIX=/path/to/trinitycore -DWITH_WARNINGS=1 -DWITH_COREDEBUG=1 -DMYSQL_LIBRARY=/usr/lib/x86_64-linux-gnu/libmysqlclient.so |
配置CMake以使用正确的MySQL客户端库路径 |
| 编译并安装 | make && sudo make install |
编译TrinityCore并安装 |
| 启动TrinityCore | /path/to/trinitycore/bin/worldserver |
启动TrinityCore以验证问题是否解决 |
结论
通过以上步骤,您可以解决TrinityCore启动时由于MySQL库版本不匹配引起的问题。确保TrinityCore使用的MySQL客户端库与系统安装的MySQL服务器版本一致,是解决此类问题的关键。本文详细介绍了从检查MySQL版本到编译和配置TrinityCore的完整过程,帮助您高效地解决这一常见问题。希望本文对您有所帮助,能够顺利启动和运行TrinityCore。


