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.

<< Step 2: Core Installation

Step 4: Server Setup >>

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.

Click the green Download button on top right next to right column.

The file is in .7z format, so you will need an archive program like 7zip to unpack it.


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 with "TDB_full" at the beginning.

Installing The Trinity Databases

Trinity needs 3 databases to run at 3.3.5 branch AuthCharacters, and World:

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.

 

Open your worldserver.conf,  go to the "UPDATE SETTINGS" section and set the following settings:

Updates.EnableDatabases = 7

 

Copy the file starting with "TDB_full_" to the directory where your worldserver.exe is. Follow the next steps of the guide and at the first start of the server the databases will be set-up automatically.

Do NOT start the worldserver yet. Follow the next steps of the guide first.

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. Pending fixes can be found on our tracker with data from the developers and contributors.

It is recommended to stay on the same revision as the TDB_full database (Beginner).

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) and the appropriate updates will we applied at server startup.

 

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 re-importing the TDB_FULL.sql into your world database. If you updated your core using the (Advanced) instructions, make sure you also re-import all of the necessary C:\Trinity\sql\updates as explained above.


Trinity needs 4 databases to run at 6.x branch - AuthCharacters, Hotfixes and World:

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 - holds fixes not already added to the core or other official databases.

The following steps are done using the database management program you installed in Step1: Requirements (ex. HeidiSQL or SQLYog):

  • In HeidiSQL, click on the database you want to use in order to "select" it, then click Tools > Load SQL File... > (select the file) > Run file(s) directly.
  • In SQLYog, click on the database you want to use in order to "select" it, then click Database > Import > Execute SQL Script.
  • On mysql cli you must use mysql --default-character-set=utf8 to avoid import failures
    • WE STRONGLY RECOMMEND TO USE THIS METHOD over the SQLYog or HeidiSQL, it is by far the fastest method to import TDB and it's needed updates.

 

  1. Create the three databases by importing ...\sql\create\create_mysql.sql from your cloned TrinityCore repository. You now have three databases - auth, characters, and world. You may need to refresh your program in order to see the new databases.
  2. Click on the "auth" database and import the auth database structure by importing ...\sql\base\auth_database.sql from your cloned TrinityCore repository.
  3. Click on the "characters" database and import the characters database structure by importing ...\sql\base\character_database.sql from your cloned TrinityCore repository.
  4. Click on the "world" database and import the world database structure by extracting and importing the "TDB_full_*.sql" file you downloaded from the Database download section.
  5. Click on the "Hotfixes" database and import the hotfixes database structure by extracting and importing the "TDB_hotfixes_*.sql" file you downloaded from the Database download section. ( it was in the same 7z file as the "TDB_full_*.sql")
  6. Click on the "world" database and import any *.sql file available in your ...\sql\updates\world folder from your cloned TrinityCore repository. THIS IS MANDATORY or your core very likely will fail to start.
  7. Click on the "hotfixes" database and import any *.sql file available in your ...\sql\updates\hotfixes folder from your cloned TrinityCore repository. THIS IS MANDATORY or your core very likely will fail to start.
  8. NOTICE WE NEVER IMPORT sql\updates\auth or sql\updates\character files from your cloned TrinityCore repository or the ones on update_only inside TDB file on fresh installation, those files are for update trinitycore not for fresh install.
  9. NEVER ENABLE CONTINUE ON ERROR ON YOUR SQL CLIENT

THIS INFORMATION HAS BEEN KEPT UP TO DATE SINCE THE CREATION OF TRINITYCORE UNTIL TODAY AND UNLESS WE CHANGE THE SYSTEM, IT WILL CONTINUE TO BE KEPT UP TO DATE. WE HAVE BEEN USING THIS SYSTEM SINCE THE START AND IT IS VERY UNLIKELY THAT IT WILL CHANGE.
IF THIS IS YOUR FIRST TIME INSTALLING TrinityCore DON'T apply any *.sql file on sql\updates\auth or sql\updates\characters from your cloned TrinityCore repository or the ones on update_only inside TDB file. Continue with SETTING UP THE SERVER. NOTICE YOU STILL NEED TO APPLY sql\updates\world files.
THIS INFORMATION HAS BEEN KEPT UP TO DATE SINCE THE CREATION OF TRINITYCORE UNTIL TODAY AND UNLESS WE CHANGE THE SYSTEM, IT WILL CONTINUE TO BE KEPT UP TO DATE. WE HAVE BEEN USING THIS SYSTEM SINCE THE START AND IT IS VERY UNLIKELY THAT IT WILL CHANGE.

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. Pending fixes can be found on our tracker with data from the developers and contributors.

As mentioned earlier, it is recommended to stay on the same revision as the TDB_full database (Beginner).

If you choose to brave the wilds beyond the current monthly revision, use the (Advanced) instructions below.

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 already completed the (Beginner) Keeping the Source Up-to-Date, which means you now have a newly downloaded revision archive.

This instruction also assumes that you have completed the initial Downloading the Database which had you import the TDB_FULL.sql, and it is now approximately one month later - a new revision has been released.

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.

  • Beginners
    • Extract the TDB_FULL.sql file from the archive and import it into your world database.
    • If they exist, also import the characters_ and auth_ .sql files into their respective databases.
    • Once this is finished and you have already compiled your source, you may run the worldserver binary to load your server. The revision update is complete.

Note: It is at this point that most user errors occur. If your worldserver.exe closes abruptly, make sure that your core's version matches your database version. Check that the `version` table in your world database matches the commit hash listed beside the archive you downloaded at TrinityCore Downloads.

  • Advanced Users

If you update your source beyond a monthly revision, you will likely have additional updates in the ...\sql\updates folder from your cloned TrinityCore repository. The folders within show which database they need to be imported to. For example, the "world" folder has all of the files that need to be imported to your world DB.

File naming conventions follow simple and consistent rules:

yyyy_mm_dd_id_world*.sql -> World DB
yyyy_mm_dd_id_character*.sql -> Characters DB
yyyy_mm_dd_id_auth*.sql -> Auth DB

"yyyy" = the year | "mm" = month | "dd" = day | "id" = daily id (incremental)

Note: The incremental daily id starts at 00, with 00 needing to be imported first, then 01, then 02, etc.

It is imperative to know the date of your previous revision when updating in order to import all of the updates from that revision to your current one.

Then, simply follow these steps:

  • Browse into your ...\sql\updates\world folder from your cloned TrinityCore repository and import all*_world*.sql files into your world DB that have a date later than your previous revision.
  • Browse into your ...\sql\updates\hotfixes folder from your cloned TrinityCore repository and import all*_hotfixes*.sql files into your world DB that have a date later than your previous revision.
  • Do the same above step for the characters and auth folders from your cloned TrinityCore repositoryif they exist. If these folders don't exist, there have not been any characters or auth database updates.

 

Note: If you are comfortable with executing batch files, you are welcome to use the batch file below to make the importing process easier. Also note that doing this will also gather up .sql files you may have already imported. In most cases this is safe, but you should use this batch file at your own risk. Take a look on the Combine SQL Updates thread in the TrinityCore forum for a more detailed batch script and informations.

If you don't change the batch script, it must be saved and executed in your ...\sql\updates folder.

copy /b world\*.sql /b all_world_updates.sql

If you still have problems, read http://www.trinitycore.org/f/topic/328-unknown-column-missing-table-duplicate-column-error-sql-problems-sqldriverlogfile-answer-on-1st-post-of-1st-page/

Notice also that the /contrib/ folder already contains a batch script file to combine the existing SQL files in the /sql/updates/world/ folder:

  • merge_updates_unix.sh (Linux (UNIX) shell script)
  • merge_updates_windows.bat (Windows batch file, obviously)

merge_updates_windows.bat creates world_updates.sql (containing /sql/updates/world/*.sql) and hotfixes_updates.sql (containing /sql/updates/hotfixes/*.sql)
merge_updates_unix.sh creates the file world_update.sql (containing /sql/updates/world/*.sql) and hotfixes_update.sql (containing /sql/updates/hotfixes/*.sql) by using the UNIX command cat

Important detail: if you regularly update your source copy or create local commits, you need to move the created *_updates.sql files out of the contrib folder and into a different location outside of the source folder tree. If you leave the files in the /contrib/ folder, git will assume that the files are part of new code you have added to the source and that you want to use it in a commit, making it inconvenient to create actual commits with usable code. Move the *_updates.sql files somewhere else to avoid this problem.

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 re-importing the TDB_FULL.sql into your world database. If you updated your core using the (Advanced) instructions, make sure you also re-import all of the necessary C:\Trinity\sql\updates as explained above.


 

 

 

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.

<< Step 2: Core Installation

Step 4: Server Setup >>