UbuntuにMySQLをインストールしたばかりで、rootユーザーがログインできません:)
パスワードを回復または確認するにはどうすればよいですか?パスワードに空白を使用しても機能しません。
--skip-grant-tables
でサーバーを実行し、rootとして(またはSudoで)以下を実行することにより、パスワードなしでログインすることにより、rootパスワードをリセットできます。
# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p
これで、新しいパスワードでrootとしてログインできるようになります。
パスワードをリセットしたユーザーの/home/$USER/.mysql_history
または/root/.mysql_history
でパスワードをリセットするクエリを見つけることもできますが、上記は常に機能します。
注:MySQL 5.7より前は、列はauthentication_string
ではなくpassword
と呼ばれていました。上記の行を
mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
これは古いスレッドであることに気づきましたが、自分の結果で更新すると思いました。
アレックス、メタパッケージ 'mysql-server'経由でMySQLサーバーをインストールしたようですね。これにより、参照により最新のパッケージ(私の場合はmysql-server-5.5)がインストールされます。私は、あなたのように、セットアップ時にMySQLパスワードの入力を求められませんでした。私は2つの答えがあると思います:
解決策1:フルネームでMySQLをインストールする:
$ Sudo apt-get install mysql-server-5.5
または
解決策2:パッケージを再構成する...
$ Sudo dpkg-reconfigure mysql-server-5.5
完全なパッケージ名を指定する必要があります。メタパッケージ「mysql-server」を使用しても、期待した結果が得られませんでした。私はこれが誰かを助けることを願っています:)
リファレンス: https://help.ubuntu.com/12.04/serverguide/mysql.html
Sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
FLUSH PRIVILEGES;
mysql -u root -p # and it works
Ubuntu 14.04上のMySQL 5.5は、推奨されるようにわずかに異なるコマンドを必要としました here 。手短に:
Sudo /etc/init.d/mysql stop
Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root
そして、MySQLプロンプトから
FLUSH PRIVILEGES;
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;
引用元 は代替方法も提供します。
RHEL-mysql 5.5の場合:
/etc/init.d/mysql stop
/etc/init.d/mysql start --skip-grant-tables
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
mysql -uroot -pnewpwd
mysql>
簡単な解決策があります。
MySql 5.7には匿名ユーザーが付属しているため、MySQLサーバーを再構成する必要があります。
あなたはこのコマンドでそれを行うことができます
一時パスを見つけてください:
grep 'temporary password' /var/log/mysqld.log
その後:
Sudo mysql_secure_installation
このリンクには、mysql 5.7に関する詳細情報があります。
https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
うーん、Mysql 5.7.13ですべてをリセットしました:
$ Sudo service mysql stop
mysqlを停止するには
$ mysqld_safe --skip-grant-tables &
mysqlを開始
$ mysql -u root
正解と同じです。それから、@ eebbesenがしたことをするだけでした。
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('NEW-password-HERE');
それがそこの誰にも役立つことを願っています:)
実際には非常に簡単です。たくさんのことをする必要はありません。ターミナルで次のコマンドを実行し、画面上の指示に従ってください。
Sudo mysql_secure_installation
MYSQL 5.7では、開発目的でmysqlを使用している場合、次のようにします。
1. kill mysql:
$ Sudo service mysql stop
2. --skip-grant-tablesモードでmysqlを起動します:
$ Sudo mysqld_safe --skip-grant-tables
さらに、「skip-grant-table」モードでユーザーテーブルを変更することもできますが、失敗しました。
したがって、これは単なる回避策です。