Моя проблема началась с того, что я не смог войти в систему как root больше при моей установке mysql. Я пытался запустить mysql без включенных паролей... но всякий раз, когда я запускал команду
# mysqld_safe --skip-grant-tables &
Я никогда не получу подсказку обратно. Я пытался следовать этим инструкциям, чтобы восстановить пароль.
Экран просто выглядит так:
[email protected]:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
и я не получаю приглашение начать вводить команды SQL для сброса пароля.
Когда я убиваю его, нажимая CTRL + C, я получаю следующее сообщение:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Если я повторю команду и оставлю ее достаточно долго, я получу следующую серию сообщений:
[email protected]:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
[email protected]:/run/mysqld#
Но тогда, если я попытаюсь войти в систему как root, выполнив:
# mysql -u root
Я получаю следующее сообщение об ошибке:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Я проверил и /var/run/mysqld/mysqld.sock
файл не существует. Папка делает, но не файл.
Кроме того, я не знаю, помогает ли это или нет, но я запустил find / -name mysqld
и он придумал:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Я новичок в Linux и MySQL, поэтому я не знаю, нормально это или нет. Но я включаю эту информацию на случай, если она поможет.
Я наконец решил удалить и переустановить MySQL.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
После переустановки всех пакетов в том же порядке, что и выше, во время установки phpmyadmin я получил ту же ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Поэтому я попытался снова удалить/переустановить. На этот раз после удаления пакетов я также вручную переименовал все файлы и каталоги mysql в mysql.bad
в соответствующих местах.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Затем я попытался переустановить mysql-server
и mysql-client
снова. Но я заметил, что это не запрашивает у меня пароль. Разве он не должен спрашивать пароль администратора?