Troubleshooting

Jawsh edited this page Nov 28, 2016 · 3 revisions

extDB2

"extDB2: Error with Database Connection" in arma3server.rpt:

The extDB2 addon is loaded, but a connection to the database cannot be established.

1. Check that the connection details in the extdb-conf.ini file are correct:

[databaseName]
Type = MySQL
Name = databaseName

Username = databaseUserName
Password = databaseUserNamePassword

IP = databaseIP
Port = databasePort

Real-world example:

[altislife]
Type = MySQL
Name = altislife

Username = arma3
Password = 75t4nZ33w33xQ2

IP = 127.0.0.1
Port = 3306

2. Check that the DatabaseName in description.ext is correct:

    DatabaseName = "databaseName"; //Config name that'll be grep in the extdb-conf.ini. Default: [altislife]

Real-world example:

    DatabaseName = "altislife"; //Config name that'll be grep in the extdb-conf.ini. Default: [altislife]

3. Check that Microsoft Visual C++ 2015 Redistributable (x86) is installed (Windows):

Start → Control Panel → Programs → Programs and Features → Microsoft Visual C++ 2015 Redistributable (x86)

4. Check that tbbmalloc.dll is unblocked and is in the same folder as arma3server.exe (Windows):

The tbbmalloc.dll file is included with the extDB2 releases.

Check that the file is not blocked by Windows by:

  1. Right-clicking on the file

  2. Clicking "Properties"

  3. Under the "General" tab and at the bottom of the window click "Unblock." If the option to unlock is not present then the file was not blocked.


Access denied for user '%userName%'@'%databaseIP%' (using password: YES) in extDB2 log:

extDB2: Database Exception Error: Connection attempt failed: Can't connect to MySQL server on '127.0.0.1' (10061)

extDB2 could not connect to the database because the specified user does not have sufficient permissions to access the database.

1. Ensure that the specified user has sufficient permissions to access the database:

Upgrade the user's permissions or create a new user with sufficient permission then add them to the extdb-conf.ini file.

[databaseName]
Type = MySQL
Name = databaseName

Username = databaseUserName
Password = databaseUserNamePassword

IP = databaseIP
Port = databasePort

PROCEDURE altislife.resetLifeVehicles does not exist in extDB2 log:

extDB2: SQL_RAW_V2: Error StatementException: MySQL: [MySQL]: [Comment]: mysql_stmt_execute error   [mysql_stmt_error]: PROCEDURE altislife.resetLifeVehicles does not exist    [mysql_stmt_errno]: 1305    [mysql_stmt_sqlstate]: 42000    [statemnt]: CALL resetLifeVehicles
extDB2: SQL_RAW_V2: Error StatementException: SQL: CALL resetLifeVehicles

The wrong user was specified for the procedures in the altislife.sql file:

1. Specify the correct user as done for the extdb-conf:

CREATE DEFINER=`arma3`@`localhost` PROCEDURE `resetLifeVehicles`()
--
-- Procedures
-- Edit arma3 to match a user in MySQL
-- For external databases: Edit localhost to match arma3server IP
--

CREATE DEFINER=`arma3`@`localhost` PROCEDURE `resetLifeVehicles`()
BEGIN
  UPDATE `vehicles` SET `active`= 0;
END$$

CREATE DEFINER=`arma3`@`localhost` PROCEDURE `deleteDeadVehicles`()
BEGIN
  DELETE FROM `vehicles` WHERE `alive` = 0;
END$$

CREATE DEFINER=`arma3`@`localhost` PROCEDURE `deleteOldHouses`()
BEGIN
  DELETE FROM `houses` WHERE `owned` = 0;
END$$

CREATE DEFINER=`arma3`@`localhost` PROCEDURE `deleteOldGangs`()
BEGIN
  DELETE FROM `gangs` WHERE `active` = 0;
END$$

CREATE DEFINER=`arma3`@`localhost` PROCEDURE `deleteOldContainers`()
BEGIN
  DELETE FROM `containers` WHERE `owned` = 0;
END$$