私の問題は、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
た。しかし、パスワードの入力を求められないことに気付きました。管理者パスワードを要求することになっていませんか?