web-dev-qa-db-ja.com

MySQLのrootパスワードを調べる方法

MySQLのrootパスワードがわかりません。どうやってこれを見つけることができますか?このパスワードが保存されているファイルはありますか?

私はこの リンク を追っていますが、ローカルにdirectadminディレクトリがありません。

146
2619

@thusharaKのおかげで、私は古いパスワードを知らなくてもrootのパスワードをリセットできた。

Ubuntuでは、私は次のことを行いました。

Sudo service mysql stop
Sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking

その後、新しい端末でmysqlを実行します。

mysql -u root

パスワードを変更するには、次のクエリを実行します。

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;

MySQL 5.7では、mysql.userテーブルフィールドのパスワードフィールドは削除され、現在のフィールド名は 'authentication_string'です。

Mysqlセーフモードを終了し、次のようにしてmysqlサービスを開始します。

mysqladmin shutdown
Sudo service mysql start
122
eeezyy

ハッシュされたパスワードを見ることはできません。あなたができる唯一のことはそれをリセットすることです!

MySQLを停止します。

Sudo service mysql stop

または

$ Sudo /usr/local/mysql/support-files/mysql.server stop

セーフモードで起動します。

$ Sudo mysqld_safe --skip-grant-tables

(上の行はコマンド全体です)

これはプロセスが終了するまで継続的なコマンドになるので、別のシェル/ターミナルウィンドウを開き、パスワードなしでログインします。

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

MySQL 5.7以降

mysql> use mysql; 
mysql> update user set authentication_string=password('password') where user='root'; 

MySQLを起動します。

Sudo mysql start

または

Sudo /usr/local/mysql/support-files/mysql.server start

あなたの新しいパスワードは 'password'です。

63
tk_

MySQL 5.7以降では、MySQLログファイルにrootが保存されます。

これを試してください。

Sudo grep 'temporary password' /var/log/mysqld.log
34
Vlad

あなたはそれを見つけることができません。これはデータベースに格納されています。アクセスするにはrootのパスワードが必要です。また、何らかの方法でアクセスしたとしても、一方向ハッシュでハッシュされます。リセットできます: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

17
lanzz

Windowsシステムでパスワードをリセットするには、以下の手順に従ってください。

  1. タスクマネージャからMysqlサービスを停止します

  2. テキストファイルを作成して以下のステートメントを貼り付けます

MySQL 5.7.5以前:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');


MySQL 5.7.6以降:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';

  1. mysql-init.txtとして保存し、それを'C' driveに配置します。

  2. コマンドプロンプトを開き、以下を貼り付けます

C:\> mysqld --init-file=C:\\mysql-init.txt

11

インストール中にパッケージマネージャがrootパスワードの入力を要求しない限り、デフォルトのrootパスワードは空文字列です。新しくインストールしたサーバーに接続するには、次のように入力します。

Shell> mysql -u root --password=
mysql>

パスワードを変更するには、UNIXシェルに戻って次のように入力します。

Shell> mysqladmin -u root --password= password root

新しいパスワードは「root」です。サーバーに接続します。

Shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

パスワードが変更されました。新しい変数rootを使います。

Shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql> 

ビンゴ!何か面白いことをする

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

モーリシー

7
mszmurlo

他の答えに加えて、cpanelインストールでは、mysqlのrootパスワードは/root/.my.cnfという名前のファイルに格納されています。 (そしてcpanelサービスは変更時にそれをリセットします。そのため、ここでの他の答えは役に立ちません)

6
Ohad Cohen

あなたは、MySQLのrootパスワードを表示することができます、よく私はMySQL 5.5でそれを試してみましたので、うまく動作するかどうか他の新しいバージョンについて知らないでください

nano ~/.my.cnf
6
user889030

Mysqlサーバーをすぐにインストールした後に使用していたデフォルトのパスワードは、mysqlです。

4
Deepak Chaudhry

これは私のために働いた:

端末で次のように入力します

$ Sudo mysql -u root -p

パスワードを入力してください://ただエンターを押してください

mySQL>

3
Light

mySQLを新しくインストールすることに悩まされた理由の1つは、なぜデフォルトのパスワードが機能しないのか、そしてresetメソッドでも機能しないのかと疑問に思います。 Ubuntu 18では、最新バージョンのmysqlサーバーはデフォルトでrootユーザーにパスワード認証をまったく使用していません。つまり、これはあなたが何を設定しても問題ではないということです。特権のあるソケットからログインすることを期待しています。そう

mysql -u root -p

あなたが正しいパスワードを使用している場合でも、まったく動作しません!!!何を入れてもアクセスが拒否されます。

代わりにあなたが使用する必要があります

Sudo mysql

それはどんなパスワードでもうまくいくでしょう。それからあなたがいったんあなたがタイプインする必要があるなら

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';

その後ログアウトすると、血なまぐさいものがようやくパスワードを受け入れるようになります

3
Kit Ramos

MySQLが動作するデータフォルダ内の "hostname" .errファイルで、以下で始まる文字列を探すようにしてください。

"roor @ localhostに一時パスワードが生成されます"

あなたが使用することができます

less /mysql/data/dir/hostname.err 

次にスラッシュコマンドに続けて探したい文字列を続けます。

/"A temporary password"

次にnを押して、次の結果に進みます。

3
nDCasT

手順はMySqlのバージョンによって異なります。使用しているバージョンの説明とまったく同じ手順に従ってください。

  • ヒント - MySql *のバージョンの説明ページの前にお読みください。

  • 手順5:CMDを実行する代わりに、CDM.exeを呼び出すショートカットをデスクトップに作成します。次にショートカットを右クリックして[管理者として実行]を選択します。

  • ステップ6:最初に提案されたバージョンのコマンドをスキップして、2番目のコマンド、--defaults-fileパラメーターを持つものを実行します

  • コマンドを実行した後、すべて問題なければ、CMDウィンドウは開いたままで、ステップ6のコマンドは実行を続けます。単にウィンドウを閉じて(「x」をクリックして)、タスクマネージャからMySQlを強制終了してください。

  • SQLコマンドでファイルを削除して、MySQLを再起動してください。今すぐパスワードを変更する必要があります。

5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

5.1 http://dev.mysql.com/doc/refman/5.1/ja/resetting-permissions.html

...リンク内のバージョンを変更する(5.5、5.6、5.7)

3
JuanCamilo

ここで提供された回答は私にはうまくいかないようでした。トリックは次のようになりました。ALTER USER 'root' @ 'localhost' mysql_native_password BY 'test'

(ここで完全な答え: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin- auth_socket /

1
user3136936

システム:

  • CentOS Linux 7
  • mysql Ver 14.14 Distrib 5.7.25

手順:

  1. 2つのシェルセッションを開き、1つにLinuxルートユーザーとしてログインし、もう1つにmysqlコマンドにアクセスできる非ルートユーザーとしてログインします。

  2. ルートセッションで、通常のmysqldリスナーを停止し、パスワード認証をバイパスするリスナーを起動します(注:これは、アクセスできるすべてのユーザーとして重大なセキュリティリスクですmysqlコマンドは、パスワードなしでデータベースにアクセスする場合があります。アクティブなシェルセッションを閉じるか、これを行う前にシェルアクセスを無効にすることができます)。

    # systemctl stop mysqld
    # /usr/sbin/mysqld --skip-grant-tables -u mysql &

  3. 非ルートセッションで、mysqlにログインし、mysqlルートパスワードを設定します。

    $ mysql
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    Query OK, 0 rows affected, 1 warning (0.01 sec)

    mysql> quit;

  4. ルートセッションで、パスワードのないmysqldのインスタンスを終了し、通常のmysqldリスナーをサービスに復元します。

    # kill %1
    # systemctl start mysqld

  5. 非ルートセッションで、上記で設定した新しいルートパスワードをテストします。

    $ mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    ...
    mysql>

0
CODE-REaD