MariaDB: Difference between revisions

From Onset Developer Wiki
No edit summary
No edit summary
 
(13 intermediate revisions by 2 users not shown)
Line 4: Line 4:
[[File:mariadb_installation.JPG]]
[[File:mariadb_installation.JPG]]
===Windows===
===Windows===
Make sure to have the file ''libmariadb.dll'' in the same directory as ''HorizonServer.exe''.
Make sure to have the file ''libmariadb.dll'' in the same directory as ''OnsetServer.exe''.
You can find that file in the Server folder delivered with the game.
You can find that file in the Server folder delivered with the game.


The MariaDB plugin can connect to MySQL 5.x and MariaDB 10.x servers. But it can not connect to MySQL 8.x servers.
The MariaDB plugin can connect to MySQL 5.x and MariaDB 10.x servers. But it can not connect to MySQL 8.x servers.


===Linux===
===Linux (Ubuntu)===
Install the following package on the target system.
Install the following package on the target system.
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
apt-get install libmariadbclient-dev
apt-get install libmariadb-dev
</syntaxhighlight>
 
====Ubuntu 19 & Ubuntu 20 Notice====
On Ubuntu 19/20 you might need to create a link to the correct libmariadbclient.
<syntaxhighlight lang="bash">
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libmariadbclient.so libmariadbclient.so.18
</syntaxhighlight>
</syntaxhighlight>


==Compiling from source==
==Compiling from source==
Minimum requirements
Recommended requirements
* CMake 3.1 (https://cmake.org)
* CMake > 3.1 (https://cmake.org)
* Boost 1.69 (https://boost.org)
* Boost 1.81.0 (https://boost.org)
* Visual Studio 2017 (Windows) or GCC 7 (Linux)
* Visual Studio 2022 (Windows) or GCC 11 (Linux)


===Windows===
===Windows===
Download the MariaDB C/C++ Connector from https://mariadb.com/downloads/#connectors
Download the MariaDB C/C++ Connector 64bit for Windows from https://mariadb.com/downloads/#connectors
Download boost and extract it.
<syntaxhighlight lang="batch">
<syntaxhighlight lang="batch">
git clone https://github.com/BlueMountainsIO/PluginMariaDB.git
git clone https://github.com/BlueMountainsIO/PluginMariaDB.git
cd PluginMariaDB
cd PluginMariaDB
cmake -DMARIADBCAPI_INCLUDE_DIR="C:\Program Files\MariaDB\MariaDB Connector C 64-bit\include" -DBOOST_ROOT="D:\Lib\boost_1_71_0" -DCMAKE_GENERATOR_PLATFORM=x64 .
cmake -DMARIADBCAPI_INCLUDE_DIR="C:\Program Files\MariaDB\MariaDB Connector C 64-bit\include" -DBOOST_ROOT="D:\Lib\boost_1_81_0" -DCMAKE_GENERATOR_PLATFORM=x64 .
</syntaxhighlight>
</syntaxhighlight>


Line 32: Line 40:
Right click on the solution and hit rebuild.
Right click on the solution and hit rebuild.


[[File:BuildMariaDBPluginWindows.png]]
[[File:BuildMariaDBPluginWindowsVS2022.png]]


The .dll will be under ''PluginMariaDB\src\Release''.
The .dll will be under ''PluginMariaDB\src\Release''.
Line 38: Line 46:
===Ubuntu===
===Ubuntu===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
apt-get install libmariadbclient-dev
apt-get install libmariadb-dev
git clone https://github.com/BlueMountainsIO/PluginMariaDB.git
git clone https://github.com/BlueMountainsIO/PluginMariaDB.git
cd PluginMariaDB
cd PluginMariaDB
cmake -DMARIADBCAPI_INCLUDE_DIR=/usr/include/mysql -DMARIADBCAPI_LIBRARY=/usr/lib/x86_64-linux-gnu/libmariadbclient.so -DBOOST_ROOT=/usr/include/boost_1_71_0 -DBUILD_STATIC=OFF .
cmake -DMARIADBCAPI_INCLUDE_DIR=/usr/include/mariadb -DMARIADBCAPI_LIBRARY=/usr/lib/x86_64-linux-gnu/libmariadbclient.so -DBOOST_ROOT=/usr/include/boost_1_81_0 -DBUILD_STATIC=OFF .
make
make
</syntaxhighlight>
</syntaxhighlight>
Line 47: Line 55:
For static builds you can do:
For static builds you can do:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cmake -DMARIADBCAPI_INCLUDE_DIR=/usr/include/mysql -DMARIADBCAPI_LIBRARY_STATIC=/usr/lib/x86_64-linux-gnu/libmariadbclient_r.a -DBOOST_ROOT=/usr/include/boost_1_71_0 -DBUILD_STATIC=ON .
cmake -DMARIADBCAPI_INCLUDE_DIR=/usr/include/mariadb -DMARIADBCAPI_LIBRARY=/usr/lib/x86_64-linux-gnu/libmariadbclient.a -DBOOST_ROOT=/usr/include/boost_1_81_0 -DBUILD_STATIC=ON .
</syntaxhighlight>
</syntaxhighlight>
The reason why we use ''libmariadbclient-dev'' over ''libmariadb-dev'' is because the latter does have a wrong hardcoded path for the mysql.sock file.

Latest revision as of 14:06, 19 December 2022

Installation

Open the server_config.json file and add mariadb to the plugins.

Windows

Make sure to have the file libmariadb.dll in the same directory as OnsetServer.exe. You can find that file in the Server folder delivered with the game.

The MariaDB plugin can connect to MySQL 5.x and MariaDB 10.x servers. But it can not connect to MySQL 8.x servers.

Linux (Ubuntu)

Install the following package on the target system.

apt-get install libmariadb-dev

Ubuntu 19 & Ubuntu 20 Notice

On Ubuntu 19/20 you might need to create a link to the correct libmariadbclient.

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libmariadbclient.so libmariadbclient.so.18

Compiling from source

Recommended requirements

Windows

Download the MariaDB C/C++ Connector 64bit for Windows from https://mariadb.com/downloads/#connectors Download boost and extract it.

git clone https://github.com/BlueMountainsIO/PluginMariaDB.git
cd PluginMariaDB
cmake -DMARIADBCAPI_INCLUDE_DIR="C:\Program Files\MariaDB\MariaDB Connector C 64-bit\include" -DBOOST_ROOT="D:\Lib\boost_1_81_0" -DCMAKE_GENERATOR_PLATFORM=x64 .

Open the generated mariadb.sln file and select "Release" as build target. Right click on the solution and hit rebuild.

The .dll will be under PluginMariaDB\src\Release.

Ubuntu

apt-get install libmariadb-dev
git clone https://github.com/BlueMountainsIO/PluginMariaDB.git
cd PluginMariaDB
cmake -DMARIADBCAPI_INCLUDE_DIR=/usr/include/mariadb -DMARIADBCAPI_LIBRARY=/usr/lib/x86_64-linux-gnu/libmariadbclient.so -DBOOST_ROOT=/usr/include/boost_1_81_0 -DBUILD_STATIC=OFF .
make

For static builds you can do:

cmake -DMARIADBCAPI_INCLUDE_DIR=/usr/include/mariadb -DMARIADBCAPI_LIBRARY=/usr/lib/x86_64-linux-gnu/libmariadbclient.a -DBOOST_ROOT=/usr/include/boost_1_81_0 -DBUILD_STATIC=ON .