web-dev-qa-db-ja.com

ユーザーdebian-sys-maintのアクセスは拒否されました

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

42

問題は、GRANTステートメントがIDENTIFIED BY PASSWORD句。この場合、mysqlはプレーンテキストではなくhashedパスワードを取得することを想定しています。

つかいます IDENTIFIED BY 'your password'代わりに、プレーンテキストのパスワードを提供する場合。

17
poncha

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>';
110
Omesh

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を再構成するために必要です。

3
shgnInc