Играя с Openshift origin 3.9 на моих пользовательских серверах. Пока это был приятный опыт. Я строил пользовательское изображение s2i на основе Ubuntu для моего стека LEMP.
Я не могу подключиться к базе данных MySQL. Я всегда получаю сообщение об ошибке:
Не удалось подключиться к MySQL: (2002) Нет такого файла или каталога
Вот мой PHP-код:
$mysql_database = getenv("MYSQL_DATABASE");
$mysql_server_name =getenv("MYSQL_HOST");
$mysql_username = getenv("MYSQL_USER");
$mysql_password = getenv("MYSQL_PASSWORD");
$mysql_port = getenv("MYSQL_PORT");
$mysqli = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_database, $mysql_port);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
die();
}
Некоторые наблюдения:
Я могу подключиться из MySQL CLI-клиента изнутри модуля.
Это же приложение / код прекрасно работает с официальным образом openshift PHP s2i.
Я что-то упустил в моем s2i?
Проверьте свой phpinfo () и найдите расширение MySQLi. Если вы не можете найти, это означает, что у вас еще нет установленного расширения, и его нужно установить.
попробуйте установить с терминала
(Ubuntu/Mint) $ sudo apt-get install php(version)-mysql
замените (версию) любым вашим номером версии php. Например, php7.0 / php7.1 и т. Д.
Чтобы проверить phpinfo (), создайте файл phpinfo.php, к которому вы можете получить доступ из URL с содержимым
<?php
phpinfo()
Если у вас есть все и до сих пор не удается подключиться? Попробуйте проверить путь к файлу mysql.sock.
Откройте файл php.ini и найдите следующую строку:
mysql.default_socket
И сделайте это (знайте, где находится ваш mysql.sock)
mysql.default_socket = /path/to/mysql.sock
Других решений пока нет …