Skip to end of metadata
Go to start of metadata
Guide

This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.

Before proceeding, please make sure that you have compiled your sources and they are up-to-date.

Getting Started with Trinity Database (TDB)

Since this commit we introduced a new and automatic way of installing and keeping the databases up-to-date.

This is described in more detail in the following instructions.

Contents

Downloading the Database

Download the latest database compilation from TrinityCore Downloads (you may need to click on Next at page footer to see the proper TDB files).

  • Note that there are different database compilations available for different branches of TrinityCore, for example 3.3.5 and master.

Click the database release you want to download, scroll down to the bottom and you should see a link to download TDB_full_*.7z the green Download button on top right next to right column.

  • You want to download the file in .7z format - that is the database download and the others are not
  • The file is in .7z format, so you will need an archive program like 7zip to unpack it.

Important

There are multiple .sql files to choose from in the .7z archive. If this is your first time installing TrinityCore, you will ONLY need the file/s with the name starting by "TDB_full" on your worldserver directory.

Installing The Trinity Databases

Import https://github.com/TrinityCore/TrinityCore/blob/master/sql/create/create_mysql.sql or https://github.com/TrinityCore/TrinityCore/blob/3.3.5/sql/create/create_mysql.sql with your favorite mysql client with root account before starting core.

TIP: edit those 2 files and change default password to something else for increased security (remember to edit conf files to use new password).

 TrinityCore Databases (expand)

Trinity needs 3 databases to run at 3.3.5 branch and 4 for master - AuthCharacters, World and hotfixes (master only):

  • auth - holds account data - usernames, passwords, GM access, realm information, etc.
  • characters - holds character data - created characters, inventory, bank items, auction house, tickets, etc.
  • world - holds game-experience content such as NPCs, quests, objects, etc
  • hotfixes (master only) - holds fixes not already added to the core or other official databases.


From the unpacked 7z folder copy the SQL files that start with "TDB_world_" and "TDB_hotfixes_" (6.x branch only) to the directory where your worldserver binary is (DON'T RENAME THOSE FILES OR AUTOMATIC SETUP WILL FAIL).

NOTICE: you don't need to import any databases, only the file creating users. If you have plans to import databases manually you need to disable autoupdater on config files.

If you have plans to change default mysql usernames and passwords make sure you have set valid database login information and the table names you want to use in the same config files (authserver/bnetserver/worldserver.conf) under "CONNECTIONS AND DIRECTORIES".

  • Notice that the databases are not created yet. The names you set in the config will be used for the created databases.

Start worldserver and press enter when it asks if you want to create databases.


  • If you get errors you may want to check your mysql login credentials in worldserver.conf and read the error message as it may tell you what to do.
  • If you get errors finding the TDB_world_ file, make sure to cd into the /bin/ folder first.
  • If you have hand created usernames, be sure they have create/alter/delete permissions.
  • You may also have deleted or moved the source folder that was used to compile the server.
    In that case you should set the setting called "SourceDirectory" in worldserver.conf under "CONNECTIONS AND DIRECTORIES" to point to the source folder you moved or downloaded.


After the server has created the databases it will look for maps and vmaps, if not found it will exit.

Keeping the DB up to date

Both core and DB fixes will be committed to the TrinityCore repository, which you may also view in Git Extensions by following the "Fetch" instructions in Keeping the Source Up-to-Date Windows / Linux. Pending fixes can be found on our tracker with data from the developers and contributors.

Note: You can run the following query on the World database to see your current DB and core revision:

SELECT * FROM `version`;

This assumes that you have completed the previous steps of the installation guide.

Note: If you have made any custom changes to your database, you may wish to backup (export) all three of them (world, characters, and auth) before performing the next few steps.



Thanks to the automatic DB updater the single step you have to do, is to fetch a new revision (Keeping the Source Up-to-Date WindowsLinux) and the appropriate updates will we applied at server startup.

Pro Tip

If your world database is ever corrupted (ex. creatures or objects are accidentally deleted), it is easy to revert it back to its original state by dropping your world database.

Help

If you still have any problem, check:


Guide

This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.







  • No labels

1 Comment

  1. Regarding --max_allowed_packet=10000000

    From https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_max_allowed_packet :

    The protocol limit for max_allowed_packet is 1GB. The value should be a multiple of 1024; nonmultiples are rounded down to the nearest multiple.

    Because the parameter will only be valid for the session, you can safely increase that value upwards up to 1073741824 or 1024M, using increments of 1024 for the byte values. MySQL will dynamically resize the buffers to accommodate the actual packet size. The setting itself is only a max limit value, telling MySQL not to create packets larger than the set limit. Given that the TDB SQL file itself is between 200 and 300 MB in size, it is highly unlikely that you will need a max_allowed_packet size larger than 256M (268435456). Values like 128M (134217728), 64M (67108864), 32M (33554432) and 16M (16777216) should work well too.

    In MySQL version 5.6.5 and older, the default max_allowed_packet value is set to 1048576 (1M).
    In MySQL version 5.6.6 and newer, the default max_allowed_packet value is set to 4194304 (4M).

    The value 10000000 is automatically rounded down by MySQL to 9999360 (9765K).
    I don't know if this value is based on a real test or calculated from the largest blob in the DB.