====== Information ======
* TrinityCore ((https://www.trinitycore.org))
* [[https://talk.trinitycore.org/t/singleplayer-scripts-and-desktop-start-launchers-on-windows-linux-freebsd/33293/7|TrinityCore Forums]]
* These notes provide a local single-player server for World of Warcraft 3.3.5
* For a traditional dedicated server see [[servers:linux:games:trinitycore_3.3.5|these notes]]
===== Media =====
* [[https://www.youtube.com/watch?v=NaEoXA53tYM|localhost Server and Desktop Launcher Presentation Video]]
* [[https://media.realmofespionage.xyz/index/category/6|Progress Pics]]
===== Resources =====
* [[https://trinitycore.org/|TrinityCore]]
* [[https://trinitycore.info/|TrinityCore MMo Project Wiki]]
===== Prerequisites =====
* [[linux:distros:opensuse_tumbleweed_gnome|openSUSE Tumbleweed (GNOME)]]
* [[games:linux:wine:world_of_warcraft_3.3.5|World of Warcraft 3.3.5]]
====== Dependencies ======
* https://trinitycore.info/install/requirements/linux
sudo zypper install gcc gcc-c++ cmake git-core boost-devel libboost_filesystem-devel libboost_program_options-devel libboost_regex-devel libboost_locale-devel zlib-devel libopenssl-3-devel readline-devel libbz2-devel libmariadbd-devel mariadb
====== Download Source ======
* https://github.com/TrinityCore/TrinityCore/commits/3.3.5/
cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/TrinityCore-335/src' && git clone --branch '3.3.5' --depth '1' --recurse-submodules 'https://github.com/TrinityCore/TrinityCore.git' ~/'Projects/TrinityCore-335/src'
====== Database ======
===== Settings =====
rm -Rf ~/'Projects/TrinityCore-335/mariadb/database' && mkdir -p ~/'Projects/TrinityCore-335/mariadb/database' && nano ~/'Projects/TrinityCore-335/mariadb/custom.cnf'
[client]
default-character-set = 'utf8mb4'
[mariadb-client]
default-character-set = 'utf8mb4'
[mariadbd]
character-set-client-handshake = 'FALSE'
character-set-server = 'utf8mb4'
collation-server = 'utf8mb4_unicode_ci'
init-connect='SET NAMES utf8mb4'
expire_logs_days = '7'
max_binlog_size = '100M'
skip-networking = 'On'
table_definition_cache = '1400'
# End
===== Initialize =====
****
mariadb-install-db --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --defaults-file=$HOME/'Projects/TrinityCore-335/mariadb/custom.cnf'
===== Initial Setup =====
* unix_socket authentication: ''Y''
* Change the root password: ''n''
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb-secure-installation --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
====== Databases ======
* https://trinitycore.info/en/install/Database-Installation#creating-the-trinitycore-databases-in-mysql
===== Connect =====
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
===== Databases =====
CREATE DATABASE authserver;
CREATE DATABASE characters;
CREATE DATABASE worldserver;
===== Users =====
CREATE USER 'authserver'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'characters'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'worldserver'@'localhost' IDENTIFIED BY 'x';
===== Permissions =====
GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';
GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';
GRANT ALL PRIVILEGES ON worldserver.* to 'worldserver'@'localhost';
FLUSH PRIVILEGES;EXIT;
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
====== Initial Compile ======
* https://trinitycore.info/en/install/Core-Installation/linux-core-installation
cd ~ && rm -Rf ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && mkdir -p ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && cd ~/'Projects/TrinityCore-335/build' && cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_C_COMPILER='/usr/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/bin/g++' -DNOJEM='1' -DSCRIPTS='static' -DUSE_COREPCH='0' -DUSE_SCRIPTPCH='0' -DCMAKE_CXX_FLAGS="-march='native' -w" -DWITHOUT_METRICS='1' -DTOOLS='1' && make --jobs=$(nproc) install && cd -
====== Content ======
* https://trinitycore.info/en/install/Server-Setup/Linux-Server-Setup
* Expects [[games:linux:wine:world_of_warcraft_3.3.5|World of Warcraft 3.3.5a]]
strings ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft/Wow.exe' | grep 'Build 12340 (Jun 24 2010 23:54:57)'
===== DBCs, Maps, and Cameras =====
****
~/'Projects/TrinityCore-335/run/bin/mapextractor' -i ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' -o ~/'Projects/TrinityCore-335/run/bin' -f '0'
===== VMaps =====
==== Extract ====
****
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/vmap4extractor' -d ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' -l && cd -
==== Assemble ====
****
~/'Projects/TrinityCore-335/run/bin/vmap4assembler' ~/'Projects/TrinityCore-335/run/bin/Buildings' ~/'Projects/TrinityCore-335/run/bin/vmaps'
===== MMaps =====
* :!: 30-40 minutes i5-8400H ((2025/12/19: ''29 Minutes 16 Seconds'' at ''--threads 8''))
* ''--threads $(nproc)''
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/mmaps_generator' --silent --skipJunkMaps 'true' --debugOutput 'false' --bigBaseUnit 'true' --threads "$(nproc)" && cd -
===== Check Files =====
* ''~/Projects/TrinityCore-335/run/bin'' needs ''Cameras'', ''dbc'', ''maps'', ''mmaps'', and ''vmaps'' folders
cd ~/'Projects/TrinityCore-335/run/bin' && ls -d 'Cameras' 'dbc' 'maps' 'mmaps' 'vmaps' && cd -
gio open ~/'Projects/TrinityCore-335/run/bin'
===== Clean-up =====
****
rm -Rf ~/'Projects/TrinityCore-335/run/bin/Buildings' ~/'Projects/TrinityCore-335/run/bin/mapextractor' ~/'Projects/TrinityCore-335/run/bin/vmap4extractor' ~/'Projects/TrinityCore-335/run/bin/vmap4assembler' ~/'Projects/TrinityCore-335/run/bin/mmaps_generator'
===== World Database =====
* https://trinitycore.info/en/install/Database-Installation#populating-the-mysql-trinity-databases
==== TDB ====
* https://github.com/TrinityCore/TrinityCore/releases
* Last tested: ''TDB_full_world_335.25101_2025_10_21.7z''
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
7z e -o'/tmp' -y ~/'Downloads/TDB_full_world_335.'*'.7z' && cat '/tmp/TDB_full_world_335.'*'.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'worldserver'
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
rm -f '/tmp/TDB_full_world_335.'*'.sql'
====== Settings ======
===== authserver =====
* Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/440847c19346aaeb1e67297320db0eb51217f916|Apr 9, 2026]] ''440847c''
* [[https://github.com/TrinityCore/TrinityCore/commits/3.3.5/src/server/authserver/authserver.conf.dist|New commits check]]
* [[https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/authserver/authserver.conf.dist|Upstream authserver.conf.dist]] ([[https://raw.githubusercontent.com/TrinityCore/TrinityCore/3.3.5/src/server/authserver/authserver.conf.dist|raw]])
cp ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf'
mkdir -p ~/'Projects/TrinityCore-335/authserver.conf.d' && nano ~/'Projects/TrinityCore-335/authserver.conf.d/localhost-authserver.conf'
[authserver]
# Connection
BindIP = "127.0.0.1"
MySQLExecutable = "/usr/bin/mariadb"
LoginDatabaseInfo = "127.0.0.1;../../mariadb.sock;authserver;x;authserver"
# Etc
AllowLoggingIPAddressesInDatabase = 0
Updates.EnableDatabases = 1
Updates.CleanDeadRefMaxCount = -1
# End
===== worldserver =====
* Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/440847c19346aaeb1e67297320db0eb51217f916|Apr 9, 2026]] ''440847c''
* [[https://github.com/TrinityCore/TrinityCore/commits/3.3.5/src/server/worldserver/worldserver.conf.dist|New commits check]]
* [[https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/worldserver/worldserver.conf.dist|Upstream worldserver.conf.dist]] ([[https://raw.githubusercontent.com/TrinityCore/TrinityCore/3.3.5/src/server/worldserver/worldserver.conf.dist|raw]])
cp ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf'
mkdir -p ~/'Projects/TrinityCore-335/worldserver.conf.d' && nano ~/'Projects/TrinityCore-335/worldserver.conf.d/localhost-worldserver.conf'
[worldserver]
# Connection
BindIP = "127.0.0.1"
MySQLExecutable = "/usr/bin/mariadb"
LoginDatabaseInfo = "127.0.0.1;../../mariadb.sock;authserver;x;authserver"
WorldDatabaseInfo = "127.0.0.1;../../mariadb.sock;worldserver;x;worldserver"
CharacterDatabaseInfo = "127.0.0.1;../../mariadb.sock;characters;x;characters"
# Server
Updates.CleanDeadRefMaxCount = -1
FlashAtStart = 0
Server.LoginInfo = 1
Motd = "Welcome to your localhost server!"
AllowTickets = 0
CharDelete.Method = 1
CharDelete.KeepDays = 0
WhoList.Update.Interval = 300
HotSwap.Enabled = 0
HotSwap.EnableReCompiler = 0
# Quests
Quests.LowLevelHideDiff = -1
Quests.HighLevelHideDiff = -1
# Character
GM.LoginState = 0
# Protections
MaxOverspeedPings = 0
PacketSpoof.Policy = 0
ChatFakeMessagePreventing = 0
ChatFlood.MessageCount = 0
# End
====== Scripts ======
===== authserver =====
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh'
#!/bin/bash
cd ~/'Projects/TrinityCore-335/run/bin'
~/'Projects/TrinityCore-335/run/bin/authserver' --config-dir ~/'Projects/TrinityCore-335/authserver.conf.d'
# End
~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh'
===== worldserver =====
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh'
#!/bin/bash
cd ~/'Projects/TrinityCore-335/run/bin'
~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'
# End
~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh'
===== Database Start =====
* ''Ctrl + \ '' to shutdown
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh'
#!/bin/bash
cd '/tmp'
'/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
# End
~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh'
===== Server Update =====
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-server-update.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-server-update.sh'
#!/bin/bash
cd '/tmp'
git -C ~/'Projects/TrinityCore-335/src' reset --hard 'origin/3.3.5'
git -C ~/'Projects/TrinityCore-335/src' pull origin '3.3.5' --rebase
cd ~/'Projects/TrinityCore-335/build'
cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_C_COMPILER='/usr/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/bin/g++' -DNOJEM='1' -DSCRIPTS='static' -DUSE_COREPCH='0' -DUSE_SCRIPTPCH='0' -DCMAKE_CXX_FLAGS="-march='native' -w" -DWITHOUT_METRICS='1' -DTOOLS='0'
make -j "$(nproc)" install
cd '/tmp'
cp -f ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf'
cp -f ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf'
zenity --title 'WoW 3.3.5 Updater' --text 'localhost server update complete' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '2' --info
# End
~/'Projects/TrinityCore-335/scripts/localhost-server-update.sh'
===== Database Back-up =====
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-databases-backup.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-databases-backup.sh'
#!/bin/bash
cd '/tmp'
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
sleep '2'
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'authserver' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-localhost-authserver.sql'
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'characters' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-localhost-characters.sql'
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
zenity --title 'WoW 3.3.5 Backup' --text 'DBs Backed-up to Downloads' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '1' --info
# End
~/'Projects/TrinityCore-335/scripts/localhost-databases-backup.sh'
===== Server Start =====
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh'
#!/bin/bash
cd '/tmp'
kgx --working-directory='/tmp' -T 'WoW 3.3.5 [MariaDB]' -e ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh' &
sleep '2'
kgx --working-directory='/tmp' -T 'WoW 3.3.5 [auth]' -e ~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh' &
sleep '0.2'
kgx --working-directory='/tmp' -T 'WoW 3.3.5 [world]' -e ~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh'
# End
~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh'
===== Database Maintenance =====
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/localhost-database-maintenance.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-database-maintenance.sh'
#!/bin/bash
cd '/tmp'
zenity --title 'WoW 3.3.5 (localhost)' --text 'Starting DB maintenance...' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '2' --info
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
sleep '2'
mariadb-check --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER -o -A -f -e --auto-repair > '/dev/null'
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
zenity --title 'WoW 3.3.5 (localhost)' --text 'DB maintenance complete' --icon ~/'.wine/Icons/WoW-335-256.png' --timeout '2' --info
# End
~/'Projects/TrinityCore-335/scripts/localhost-database-maintenance.sh'
====== Create GM Account ======
* https://trinitycore.info/en/install/Final-Server-Steps
* Done from ''worldserver'' console
* Change ''x'' to password
~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh'
account create Espionage724 x
account set gmlevel Espionage724 3 -1
server shutdown 1
====== Extras ======
===== Items =====
==== Tyrael's Hilt ====
* Mini Tyrael pet
.additem 39656
==== Goldshire Gift Voucher ====
* Quest for Diablo Stone, Panda Collar, or Zergling Leash pets
.additem 14646
==== GM Robes ====
.additem 2586
.additem 11508
.additem 12064
===== Teleports =====
****
.tele GMIsland
====== Character Data ======
===== Backup =====
==== Start MariaDB ====
* Shutdown: ''Ctrl + \''
'/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
==== authserver ====
****
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'authserver' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-localhost-authserver.sql'
==== characters ====
****
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'characters' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-localhost-characters.sql'
===== Restore =====
* [[#databases|Initial set-up]]
==== Start MariaDB ====
****
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
==== authserver ====
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='CREATE DATABASE authserver;'
cat ~/'Downloads/'*'-localhost-authserver.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'authserver'
==== characters ====
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='CREATE DATABASE characters;'
cat ~/'Downloads/'*'-localhost-characters.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'characters'
==== Shutdown MariaDB ====
****
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
====== Quick Commands ======
===== Execute =====
==== MariaDB ====
=== Background ===
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
=== Foreground ===
* Shutdown: ''Ctrl + \''
'/usr/sbin/mariadbd' --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
==== authserver ====
****
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/authserver' --config-dir ~/'Projects/TrinityCore-335/authserver.conf.d'
==== worldserver ====
****
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'
===== DB Maintenance =====
****
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' && sleep '2' && mariadb-check --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER -o -A -f -e --auto-repair && mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
===== DB Reset =====
* ''DROP'' existing + ''CREATE'' + ''GRANT''
* Restore [[#restore|authserver/characters]]
* Import [[#world_database|World DB]]
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='DROP DATABASE authserver;DROP DATABASE characters;DROP DATABASE worldserver;CREATE DATABASE authserver;CREATE DATABASE characters;CREATE DATABASE worldserver;GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';GRANT ALL PRIVILEGES ON worldserver.* to 'worldserver'@'localhost';FLUSH PRIVILEGES;'