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_installation
rootとして実行する必要があり、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 root
mysqlを入力して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 パッケージを削除して再インストールすることもできます。データベースも削除することを忘れないでください。