Mysqlに問題があります。私はこれを実行しようとしました:
echo "show databases" | mysql -B -N
しかし、私は得た:
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
しかし、私が実行するとき:
/etc/init.d/mysql restart
「OK」を取得しました。
やった
GRANT ALL PRIVILEGES on *.* TO debian-sys-maint@localhost IDENTIFIED BY PASSWORD 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES;
パスワードは/etc/mysql/debian.cnf
。しかし、それは助けにはなりませんでした。 (もちろん、privをフラッシュし、mysqlを再起動しました)。
問題は、GRANT
ステートメントがIDENTIFIED BY PASSWORD
句。この場合、mysqlはプレーンテキストではなくhashedパスワードを取得することを想定しています。
つかいます IDENTIFIED BY 'your password'
代わりに、プレーンテキストのパスワードを提供する場合。
DebianにはMySQLアカウントがあるためですdebian-sys-maint
オン/オフの切り替えとステータスの確認に使用されます。そのユーザーのパスワードは、/etc/mysql/debian.cnf
。ファイルは次のようになります。
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
Host = localhost
user = debian-sys-maint
password = <password>
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
Host = localhost
user = debian-sys-maint
password = <password>
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
パスワードが手動で変更したなどの理由で一致しない場合、initスクリプトは機能しなくなります。ファイルに従ってパスワードを設定する必要があります。そう
mysql -u root -p
# Then type MySQL root password
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>';
Debian-sys-maintユーザーを復元する最も簡単な方法は、パッケージmysql-server-5.5を再構成することです。 MySQLのrootユーザーのパスワードがわかっている場合は、ユーザーとそのパスワードを/etc/mysql/debian.cnfに復元してみてください。
Sudo dpkg-reconfigure mysql-server-5.5
注:mysql pidを停止できない場合は、Sudo killall mysqld
。これは、mysql-server-5.5を再構成するために必要です。