|
3 | 3 | require_once dirname(__DIR__) . '/core/config/common.config.php'; |
4 | 4 | global $CONFIG; |
5 | 5 |
|
6 | | -$CONFIG['db']['dbname'] .= '_test'; |
| 6 | +$rootUser = $CONFIG['db']['root_user'] ?? 'root'; |
| 7 | +$rootPassword = $CONFIG['db']['root_password'] ?? null; |
7 | 8 |
|
8 | | -$connection = new PDO(sprintf('mysql:host=%s;port=%u;charset=utf8', $CONFIG['db']['host'], $CONFIG['db']['port']), $CONFIG['db']['username'], $CONFIG['db']['password']); |
9 | | -$connection->query('DROP DATABASE IF EXISTS ' . $CONFIG['db']['dbname']); |
10 | | -$connection->query('CREATE DATABASE '.$CONFIG['db']['dbname']); |
11 | | -$connection->query('GRANT ALL PRIVILEGES ON '.$CONFIG['db']['dbname'].'.* TO "'.$CONFIG['db']['username'].'"@"%" IDENTIFIED BY "'.$CONFIG['db']['password'].'"'); |
12 | | -$connection->query('FLUSH PRIVILEGES'); |
| 9 | +$CONFIG['db']['dbname'] .= '_test'; |
| 10 | +$CONFIG['db']['username'] .= '_test'; |
| 11 | +$CONFIG['db']['password'] .= md5(random_bytes(10)); |
| 12 | + |
| 13 | +try { |
| 14 | + $connection = new PDO(sprintf('mysql:host=%s;port=%u;charset=utf8', $CONFIG['db']['host'], $CONFIG['db']['port']), $rootUser, $rootPassword); |
| 15 | + $connection->query('DROP DATABASE IF EXISTS ' . $CONFIG['db']['dbname']); |
| 16 | + $connection->query('CREATE DATABASE ' . $CONFIG['db']['dbname']); |
| 17 | + $connection->query('GRANT ALL PRIVILEGES ON ' . $CONFIG['db']['dbname'] . '.* TO "' . $CONFIG['db']['username'] . '"@"%" IDENTIFIED BY "' . $CONFIG['db']['password'] . '"'); |
| 18 | + $connection->query('FLUSH PRIVILEGES'); |
| 19 | +} catch (\Throwable $exception) { |
| 20 | + throw new RuntimeException(sprintf("Cannot create database: %s\nPlease check your MySQL server configuration\n%s", $exception->getMessage(), json_encode($CONFIG['db'])), 0, $exception); |
| 21 | +} |
13 | 22 |
|
14 | 23 | ob_start(); |
15 | 24 | require_once dirname(__DIR__).'/install/database.php'; |
|
0 commit comments