Итак, у меня на жестком диске Linux стало не хватать места. Я добавил еще один жесткий диск и теперь хочу изменить каталоги MySQL. Таким образом, вместо того, чтобы сохранять данные на старый жесткий диск, он сохраняет их на новом жестком диске. Новый жесткий диск смонтирован как / Data /
Я искал несколько способов сделать это и следовал каждой инструкции. Но каждый раз, когда я следовал инструкциям, я получаю ошибку «ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock'»
Я попытался переместить каталог, а затем связать старый каталог с новым. Та же ошибка.
Я попытался переместить весь каталог и изменить файл my.cnf в etc, чтобы он указывал на новый каталог, я даже изменил строку socket = / Data / mysql / mysql.sock с той же ошибкой.
** Кроме того, я убедился, что все права собственности принадлежат mysql: mysql
Не запускается каждый раз. В итоге я возвращаю все на место, и все начинается успешно. Я был бы очень признателен за помощь здесь.
Спасибо!
В my.cnf вам нужно добавить путь к сокету в двух местах: в разделе [mysql] и в разделе -> [client] <-.
Вот типичный файл глобальных опций:
[клиент]
порт = 3306
сокет = / tmp / mysql.sock
[mysqld]
порт = 3306
сокет = / tmp / mysql.sock
После того, как вы переместите все в новую папку, вам необходимо убедиться, что у папки есть разрешения и права собственности mysql: mysql.
Ошибка, которую вы получаете, возникает не из-за запуска mysql с ошибками в месте, а из-за того, что вам нужно изменить расположение сокета в [client]
, `[mysqld] и любое другое место, в котором он появляется, в my.cnf
Это не имеет ничего общего с сокетами или разрешениями, я проверил, что selinux и apparmor были отключены, но mysql не запускался.
Я также пробовал символические ссылки на / var / lib / mysql. Удаление mysql и запуск с нуля - единственный способ заставить его работать.
полностью удалить mysql из вашей системы
смонтировать внешний жесткий диск в / var / lib / mysql
установите последнюю версию mysql, она скажет, что могут быть более ранние версии в / var / lib / mysql, просто игнорируйте это.
Mysql больше не видит разницы, и все в порядке.
Проверьте, остались ли еще какие-то процессы mysqld или нет?
# ps aux | grep mysqld
убить весь процесс mysqld (подождите 10 секунд, чтобы он полностью завершился):
# killall mysqld mysqld_safe
Если вы все еще видите больше, чем просто запустите эту команду:
killall -9 mysqld mysqld_safe
Перезапустите mysqld:
/etc/init.d/mysql start