Когда я пытаюсь войти в mysql локально, используя команду:
mysql -u root -p
Я получаю такую ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Я могу получить доступ к серверу удаленно (не как root), и мои веб-страницы используют mysql fine, но локально я не могу войти в систему (что мне нужно, потому что мне нужно создать некоторых пользователей). Единственное изменение, которое я сделал, - это подключить к серверу еще один диск и переместить туда данные sql. Вот my.cnf
[mysqld]
datadir=/media/ephemeral0/data/mysql
socket=/media/ephemeral0/data/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# adding more config
skip-external-locking
long_query_time=1
slow_query_log
slow_query_log_file=/var/log/log-slow-queries.log
log-bin=mysql-bin
server-id= 1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
myisam_recover_options
Я прочитал, что мне нужно отредактировать информацию о сокете в my.cnf, чтобы убедиться, что он указывает на правильный файл сокета. Я дважды проверил, и файл существует (хотя он начинается с S, когда я делаю ls -l "srwxrwxrwx 1 mysql mysql 0 21 июня, 03:43 mysql.sock »).
Я не совсем уверен, как это решить. Я попытался перезагрузиться и запустил yum update, чтобы убедиться, что я использую последние пакеты.
Пожалуйста помоги!
Проблема в том, что в [mysqld]
раздел вашего my.cnf
вы установили сокет в нестандартное место /media/ephemeral0/data/mysql/mysql.sock
но [mysqld]
раздел влияет только на сервер, а не на клиента.
Вы должны поместить эту опцию в [mysql]
вместо этого - тогда он будет применяться как к клиенту, так и к серверу.
Вы можете найти дополнительную информацию о файлах параметров и их разделах в документации mysql: