MySQLアクセスが拒否されました(CentOS)

MySQLアクセスが拒否されました(CentOS)

CentOSに新しいMySQLサーバーをインストールし、コマンドを使用してMySQLサーバーサービスを開始しました。

 # /sbin/service mysqld start

サービスを確認してみると実行中ですね。

現在ログインしていますroot@localhost。変更したいパスワードですroot。そのために、私は次のコマンドを発行しました。

/usr/bin/mysql_secure_installation

このコマンドを実行するとすぐにパスワードの入力を求められ、Enterキーを押します。これはうまくいきません。また、私のLinuxルートパスワードを試しましたが、うまくいきませんでした。

Enterキーを押すと、次の結果が表示されます。

Error: Access denied for user 'root'@'localhost' (using password : NO)

Linuxボックスローカルルートパスワードを使用しようとすると、次のメッセージが表示されます。

Error: Access denied for user 'root'@'localhost' (using password : YES)

インストール中は、ローカルコンピュータのパスワードroot以外にはパスワードが要求されませんでした。私がここで何を見逃しているのでしょうか? mysql-workbenchでログインするにはどうすればよいですか?ありがとうございます。

答え1

編集/etc/my.cnfと追加:

skip-grant-tables

その後、MySQLサービスを再起動してログインしようとします。

mysql

[公式マニュアル]も確認できます。

答え2

ルートパスワード設定がある可能性があります。通常はmysql_secure_installationrootとして実行する必要があり、mysql rootパスワードを入力するように求められ、Enterキーを押します。

あなたの場合は、ルートパスワードが設定されているように見え、次のように変更できます。

sudo mysqld_safe --user=mysql --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock --datadir=/var/lib/mysql --skip-grant-tables

その後、mysqlを起動してmysql -u rootmysqlを入力してrootパスワードを更新できます。

mysql> use mysql; 
mysql> update user set password=PASSWORD("yournewrootpasshere") where User='root';
mysql> flush privileges;
mysql> quit

--skip-grant-tablesオプションは使用するキーなので、パスワードの入力を求められません。

その後、mysqlを正常に再起動するとその内容が表示され、mysql_secure_installation必要に応じて新しいルートパスを使用して再実行することもできます。

新しくインストールするので、 mysql パッケージを削除して再インストールすることもできます。データベースも削除することを忘れないでください。

関連情報