Я пытаюсь установить 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 появляются на картинке, но не пока не знаю куда копать.
Итог:
Пока я исследую этот вопрос, это есть какие-нибудь предложения?
Большое спасибо.
Найдено частичное решение этой проблемы
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.
Надеюсь, это поможет банде! Это спасло мой день :-)
.