私の問題は、mysqlインストールでrootとしてログインできなくなったことから始まりました。パスワードをオンにせずにmysqlを実行しようとしましたが、コマンドを実行するたびに
# mysqld_safe --skip-grant-tables &
プロンプトが返ってこない。私はこれらの指示に従ってパスワードを回復しようとしました。
画面は次のようになります。
root@jj-SFF-PC:/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!
コマンドを再試行して十分に長い時間放置すると、次の一連のメッセージが表示されます。
root@jj-SFF-PC:/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
root@jj-SFF-PC:/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
再び。しかし、パスワードの入力を求められないことに気づきました。管理者パスワードを要求するのではないですか?
/var/run/mysqld/mysqld.sock
欠けています。リンクした問題にそのファイルがあります。