web-dev-qa-db-ja.com

ルートMySQLパスワードを確認するにはどうすればよいですか?

UbuntuにMySQLをインストールしたばかりで、rootユーザーがログインできません:)

パスワードを回復または確認するにはどうすればよいですか?パスワードに空白を使用しても機能しません。

65
Genadinik

--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';
134
Benjamin Manns

これは古いスレッドであることに気づきましたが、自分の結果で更新すると思いました。

アレックス、メタパッケージ '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

19
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
8
Alex Ivasyuv

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;

引用元 は代替方法も提供します。

7
eebbesen

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>  
3
Gurumurthy

簡単な解決策があります。

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

1
Stevan Tosic

うーん、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');

それがそこの誰にも役立つことを願っています:)

1
Joseph Briggs

実際には非常に簡単です。たくさんのことをする必要はありません。ターミナルで次のコマンドを実行し、画面上の指示に従ってください。

Sudo mysql_secure_installation
0

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」モードでユーザーテーブルを変更することもできますが、失敗しました。

したがって、これは単なる回避策です。