The server won't start if you don't populate the database. The database contains practically everything you see in the game. To populate it is easy.
For example, to do it in the command line you'd do as follows:
CREATE DATABASE eq2emu;
CREATE DATABASE eq2ls;
USE eq2emu;
source LOCATIONOFSQL_UPDATES/eq2emu.sql
USE eq2ls;
source LOCATIONOFSQL_UPDATES/eq2emulssql.sql
Also make sure you create a user for the emu.
CREATE USER 'eq2emu'@localhost IDENTIFIED BY 'eq2emu';
GRANT ALL PRIVILEGES ON *.* TO 'eq2emu'@localhost IDENTIFIED BY 'eq2emu';
You have successfully compiled the server! There is a little more setup required to get the server running. Inside the /home/eq2emu/eq2emu/server/ directory.
[Database]
host=localhost
user=root #Update to your new DB user
password=pass #Update to your new DB password
database=eq2ls
2. Create world_db.ini from world_db.ini.example
[Database]
host=127.0.0.1
user=root #Update to your new DB user
password=pass #Update to your new DB password
database=eq2emu
3. Create server_config.json from server_config.json.example
{
"LoginServer": {
"loginserver": "ENTERIP",
"loginport": "9100",
"worldname": "TestLabs",
"worldaddress": "ENTERIP",
"internalworldaddress": "ENTERIP",
"worldport": "9001",
"locked": "false",
"account": "testlabs",
"password": "testpass"
},
"WorldServer": {
"Defaultstatus": "0",
"webaddress": "",
"webport": "",
"webcertfile": "",
"webkeyfile": "",
"webhardcodeuser": "",
"webhardcodepassword": ""
},
"LoginConfig": {
"ServerMode": "StandAlone",
"ServerPort": "9100",
"AccountCreation": "1",
"webloginaddress": "",
"webloginport": "",
"webcertfile": "",
"webkeyfile": "",
"webhardcodeuser": "",
"webhardcodepassword": ""
}
}
4. Create a log_config.xml from the log_config.xml.example
5. Add your server to the DB, in the MySQL command line, type
/u eq2ls; – selects the login server database
insert into login_worldservers set note='', description='', name='$WORLD_NAME', account='$WORLD_ACCOUNT_NAME',password=sha2('$WORLD_ACCOUNT_PASSWORD',512);
6. Have both login and eq2world executables running for the server to be available.
./login &
./eq2world &
Or using screen
SCREEN -d -m ./login
SCREEN -d -m ./eq2world
If you want to keep your server at the newest version, simply run 'git pull' in the EQ2EMu directory, then cd into Login and World server and compile them. Then simply copy the binaries to the Linux folder or wherever else you might have put your executables for the server. Then you just grab the latest SQL files and execute those in your database.
I made a script to automate the process.
wget -cO - https://www.dropbox.com/s/32qqmmviblulhwl/updater.sh?dl=1 > updater.sh
2. give it executing permissions
chmod +x updater.sh
3. Run it
./updater.sh
4. Execute the 2 new SQL files in SQL_UPDATES to your database.
Check gcc -v you may be running GCC v7, GCC v8 required.
-I/usr/include/mysql in COPTS=$(WFLAGS)
Or you might be missing libmariadb-dev.
change:
-lmariadbclient
to:
-lmysqlclient
/usr/bin/ld: build/release/WorldServer/World.o: in function `World::init()':World.cpp:(.text+0xa9df): undefined reference to `WorldDatabase::LoadRuleSets()'collect2: error: ld returned 1 exit statusmake: *** [makefile:58: eq2world] Error 1
Simply try to run 'make clean' then 'make' once more.
EQ2EMu/EQ2/source/WorldServer/Zone/../../common/string_util.h:27:10: fatal error: fmt/format.h: No such file or directory
Find #include <fmt/format.h> in string_util.h and change it to #include <../depends/fmt/include/fmt/format.h>