mariadb mysql параллельная установка apache и php

Я пытаюсь установить mysql и mariadb на тот же сервер в качестве параллельной установки, каждая служба на другом порту.

Я установил сервер mysql, используя apt-get в дистрибутиве на основе debian, а затем mariadb, следуя этому руководству , используя предварительно скомпилированные двоичные файлы mariadb.

На первый взгляд все работает нормально, потому что: mysql -u root -pmypassword -h xxxx --port 3306

MariaDB: mysql -u root -pmypassword -h xxxx --port 3307

C) На сервере я могу успешно подключаться к обеим консолям и выполнять запросы, используя:

MySQL: mysql -u root -pmypassword --port 3306

MariaDB: mysql -u root -pmypassword --socket = / opt / mariadb-data / mariadb.sock

Что не работает

Невозможно подключиться следующим образом:

/opt/mariadb/bin/mysql -u root -pmypassword --port 3307
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2 "No such file or directory")

Вместо этого подключается к порту 3306:

/usr/bin/mysql -u root -pmypassword --port 3307

I полагаю, что вследствие предыдущих ошибок моя установка Joomla работает только тогда, когда mysql запущен либо на порту 3306, либо на 3307.

Когда только MariaDB работает на любом из портов, Joomla отображает:

Database connection error (2): Could not connect to MySQL.Database connection error (2): Could not connect to MySQL. 

и командную строку:

# /usr/bin/mysql -u root -pmypassword
ERROR 2002 (HY000): Can't connect to local MySQL server through    socket '/var/run/mysqld/mysqld.sock' (2)

# /opt/mariadb/bin/mysql -u root -pmypassword
ERROR 2002 (HY000): Can't connect to local MySQL server through  socket '/tmp/mysql.sock' (2 "No such file or directory")

] Когда MariaDB работает, я все еще могу подключиться через phpMyAdmin и командную строку с удаленного хоста или через командную строку на сервере, используя параметр --socket.

Я должен заметить, что во время предыдущих тестов, начиная с установки mysql, я установил mariadb-server через apt-get, и он заменил установку mysql, и все работало нормально либо через командную строку, либо через любую структуру php cms, если на то пошло. .

Я думаю, что где-то все еще есть ссылки на mysql, в частности на его файл сокета, потому что использование параметра --socket в командной строке заставляет его работать каждый раз

На этом этапе я считаю, что apache и php появляются на картинке, но не пока не знаю куда копать.

Итог:

  • С удаленного хоста phpMyAdmin и командная строка работают с каждой службой на любом порту.
  • На сервере Apache и php не подключаются к MariaDB ни на одном из портов
  • Подключение к MariaDB через командную строку на сервере работает, только если задана опция --socket.

Пока я исследую этот вопрос, это есть какие-нибудь предложения?

Большое спасибо.

1
задан 5 May 2016 в 23:58
1 ответ

Найдено частичное решение этой проблемы

Apache, PHP и, следовательно, другие CMS теперь могут подключаться просто отлично.

Редактируйте файл /etc/php5/apache5/php.ini и в зависимости от того, какой драйвер Вы используемые (mysql или mysqli) устанавливают соответствующие переменные для использования файл сокета, используемый MariaDB:

    mysql.default_socket =/opt/mariadb-data/mariadb.sock

или

    mysqli.default_socket =/opt/mariadb-data/mariadb.sock

Так что для удобства теперь у вас должны быть три php.ini файла:

    php.ini, php.ini.mysql,php.ini.mariadb

и перезапишите php.ini с любым из двух других файлов, когда вы планируете использовать соответствующий сервис базы данных и перезапустить apache. Теперь вы можете оставить конфигурацию CMS нетронутой, за исключением портов.

Таким образом, вы можете установить mariadb на существующий рабочий сервер с уже существующей установкой mysql. Не отключая сервис, вы можете экспортировать базы данных из mysql и импортировать их в mariadb; на этом этапе вы либо меняете конфигурацию CMS (Joomla в моем случае) на другой порт, либо перезаписываете php.ini, как показано выше, и перезагружаете/перезагружаете apache.

Надеюсь, это поможет банде! Это спасло мой день :-)

.
0
ответ дан 4 December 2019 в 06:47

Теги

Похожие вопросы