web-dev-qa-db-ja.com

ユーザー 'root' @ 'localhost'のMySQLアクセスが拒否されました

私のサーバーでは、MySQLにアクセスしようとするたびにエラーが発生します。

ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)

mysqladmin -u root -p passwordを試してみると

ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:YESを使用)

Ubuntuサーバー12.04でMySQLにアクセスするにはどうすればよいですか?

22
user253867

N localhostを実行している場合は、ターミナルで次のコマンドを入力します。

mysql -u root -p

外部サーバーを使用している場合は、ホストIP(xxx.xxx.xxx.xxx)も入力します。

mysql -hxxx.xxx.xxx.xxx -uroot -p

パスワードの入力を求められます。パスワードを入力すると、MySQLプロンプトにアクセスできるようになります。

MySQLパスワードをリセットする方法については、 this answer もご覧ください。

12
Parto

更新しても同じ症状が発生しますが、修正するには(mysqlを強制終了してから--skip-grant-tablesで再起動して)実行することです

update mysql.user set plugin = '';

更新プロセスでは、この列を「unix_socket」に設定します。私はそれが何を成し遂げるべきかを知りませんが、私にとってそれはすべてを壊します。

7
dogtato

Ulrich Metzgerと同じように、マシンをUbuntu 16.04およびMysql-server-5.7にアップグレードした後、mysqlデータベースのplugin列が変更されたため、rootでログインできませんでした。

Sudo dpkg-reconfigure mysql-server-5.7コマンドと削除、パージ、およびクリーニングの両方で問題が解決しませんでした。

Mysqlサービスを停止する必要がありました

# Sudo service mysql stop

--no-grant-tablesオプションなしでmysqlデーモンを起動します

# Sudo mysql_safe --no-grant-tables &

次に、別の端末で、コマンドmysqlを使用してmysql(もう認証されていない)を入力し、sql UPDATEを介してパスワードとプラグインの列を更新します

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

最後にmysql_safeコマンドを強制終了し、mysqlサービスを再起動して、通常どおりmysqlに接続します

# Sudo service mysql start
# mysql
4
Kuuak

Mysqlのパスワードを設定します

Sudo dpkg-reconfigure mysql-server-5.x

ターミナルを開いて入力します

mysql -uroot -p

パスワードを入力してEnterキーを押します

4
Conor

私はこれで問題を解決しました:

Sudo apt-get remove --purge mysql-server mysql-client mysql-common
Sudo apt-get autoremove
Sudo apt-get autoclean
Sudo apt install mysql-server

非常に責任がある。このソリューションでは、MySqlサーバーとそのすべてのデータを削除する

4

Ubuntu 14.4LTSから16.4LTSにアップグレードした後、mysqlユーザーテーブルのプラグインカラムのエントリが間違っているため、mysql rootユーザーはこれ以上ログインできませんでした。アップグレードは、root @ localhostユーザーのプラグイン値をauth_socketに設定しますが、mysqlネイティブパスワード暗号化を以前に使用した場合は、正しいエントリはmysql_native_passwordでなければなりません。

2
Ulrich Metzger