Xampp: не может соединиться с mysql от терминала

Я добавил export PATH=$PATH:/opt/lampp/bin/ к моему ~/.zshrc файл. Я могу получить доступ к php, но каждый раз, когда я ввожу sudo mysql -uroot Я вижу следующее сообщение:

ОШИБКА 2002 (HY000): не Может соединиться с локальным сервером MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)

Я могу однако, доступ mysql путем определения полного пути как это: sudo /opt/lampp/bin/mysql -uroot. Но я не хочу это... Я подразумеваю, что должен был бы ввести полный путь каждый раз или создать псевдоним или символьную ссылку.

Я нахожусь на Ubuntu 16.04 и использующий zshell.

1
задан 1 February 2018 в 09:09

1 ответ

У Вас есть две версии установленного mysql - один из репозиториев Ubuntu и один от некоторого стороннего местоположения. Когда Вы используете версию Ubuntu, расположенную в /usr/bin/mysql это пытается соединить канавку сокет в месте по умолчанию, /var/run/mysqld/mysqld.sock, который не работает, потому что выполнение сервера не является mysql-сервером запаса Ubuntu.

Это работает, когда Вы работаете /opt/lampp/bin/mysql -uroot (никакая причина выполнить это как корень, между прочим), потому что этот mysql двоичный файл имеет набор пути по умолчанию туда, где фактический сокет.

У Вас есть три альтернативы:

  1. Измените свой путь так, чтобы /opt/lampp/bin/ is before/usr/bin /' в пути. Это выполнит lampp версию mysql перед версией Ubuntu.
  2. Удалите Ubuntu mysql клиент с sudo apt-get remove mysql-client. Это может повредить другие пакеты.
  3. Удалите lampp и установите необходимые пакеты из Ubuntu.

3. Было бы мое предпочтительное решение. Получение всего программного обеспечения из репозиториев гарантирует, что будет усовершенствовано, будет (главным образом) совместимо, и иметь ясную, четко определенную процедуру обновления к следующему Релизу Ubuntu.

Apache, PHP, Mysql/MariaDB и много апачских модулей доступны в репозиториях Ubuntu.

1
ответ дан 7 December 2019 в 15:24

Другие вопросы по тегам:

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