エラー1698(28000):Ubuntu 18.04でユーザー 'root' @ 'localhost'のアクセスが拒否されました


22

このチュートリアルに従ってMySQLをインストールしましたが、MySQLを正常にインストールした後、データベースにアクセスできませんでした。

エラー1698(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました


1
私は同じ問題に直面しましたが、掘り下げた後、StackOverFlowの指示に従ってルートパスワードを自分で設定する必要があることを知りました
Mohammad.Hファティ

回答:


46

こちらのリンクで解決策を見つけました。この解決策に従うことで問題を解決しました。

短い手順は次のとおりです。

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

注:これtestは、rootユーザーの新しいパスワードです。また、sudo service mysql restartユーザーを変更した後にコマンドを実行することを忘れないでください。


ありがとうございました。もはやmysql-serverがパスワードの入力を推奨していないのは奇妙です。
gamofe

1
エラー1064(42000):SQL構文にエラーがあります。マニュアルをチェックし、その行1でb230mehonot「『』 BY mysql_native_passwordで識別」近く「USER 『ルート』 @」localhostを使用する権利構文についてはMariaDBサーバのバージョンに対応
alhelal

ここで同じエラー... :(
user1111929

@alhelal、解決策はMariaDBではなくMySQL用です。そのため、別のソリューションを試すことができます。
Ashrafuzzaman Sujan

mysql -u rootを記述せず、単に「sudo mysql」と記述します。MySQL5.7(以降)を実行するUbuntuシステムでは、rootユーザーはデフォルトでauth_socketプラグインによって認証されます。
ravisoni

13

ローカルシステムのパスワードを入力する必要がないため、別の方法を見つけました。
以下の通りです。

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

sudo mysql -u root -p

mysqlでプロンプトが表示されます。ここでは、mysqlコマンドを起動できます。

テーブルタイプの変更にはmysqlテーブルを使用します。そのため、空のパスワードを使用できます。ベローはそれのためのコマンドです

USE mysql;

次のコマンドでテーブルのタイプを変更します

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

ここで、UPDATEを使用したため、特権をフラッシュする必要があります。グラントテーブルで INSERT、UPDATE、またはDELETEを直接使用する場合は、グラントテーブルを再ロードするためにFLUSH PRIVILEGESを使用する必要があります。

FLUSH PRIVILEGES;

次のコマンドでmysqlを終了します

exit;

次のコマンドでmysqlサーバーを再起動します

service mysql restart

これが役立つことを願っています

ありがとうございました。


2
これは正しい答えです
ニンガッパ

よろしくお願いします:)
Krunal Pathak
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.