44

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を再起動しました)。

4

3 に答える 3

119

これは、Debianがdebian-sys-maintオン/オフの切り替えとステータスの確認に使用されるMySQLアカウントを持っているためです。そのユーザーのパスワードは、に保存されているものと同じである必要があります/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>';
于 2012-07-25T07:10:20.637 に答える
17

問題は、GRANTステートメントが句を使用していることです。この場合、mysql はプレーンテキストではなくハッシュ化されたパスワードIDENTIFIED BY PASSWORDを取得することを期待しています。

IDENTIFIED BY 'your password'プレーンテキストのパスワードを提供したい場合は、代わりに使用してください。

于 2012-10-21T22:56:01.247 に答える