web-dev-qa-db-ja.com

MySQLのrootパスワードをリセットまたは変更する方法

UbuntuサーバーでMySQLのrootパスワードとユーザー名を変更するにはどうすればいいですか?変更を設定する前にmysqlサービスを停止する必要がありますか?

Phpmyadminの設定もありますが、phpmyadminは自動的に更新されますか?

151
asm234

Ubuntu LinuxでMySQLのrootパスワードを設定/変更/リセットします。端末に次の行を入力してください。

  1. MySQLサーバを停止します。Sudo /etc/init.d/mysql stop
  2. mysqld設定を開始します。Sudo mysqld --skip-grant-tables &

    場合によっては、最初に/var/run/mysqldを作成する必要があります。

    Sudo mkdir -v /var/run/mysqld && Sudo chown mysql /var/run/mysqld
    
  3. RootとしてMySQLにログインします。mysql -u root mysql

  4. YOURNEWPASSWORDを新しいパスワードに置き換えます。

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;
    

注:いくつかのバージョンでは、password列が存在しない場合、試してみるとよいでしょう。
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

注:この方法はパスワードをリセットする最も安全な方法とは見なされていませんが、機能します。

参考文献:

  1. Ubuntu LinuxでMySQLのrootパスワードを設定/変更/リセットします
  2. ルートパスワードをリセットする方法
167
Christian Mark

Ubuntuサーバーのrootパスワードをリセットするための公式で簡単な方法...

16.04、14.04、12.04の場合:

Sudo dpkg-reconfigure mysql-server-5.5

10.04を利用している場合

Sudo dpkg-reconfigure mysql-server-5.1

どのmysql-serverバージョンがインストールされているかわからない場合は、試すことができます。

dpkg --get-selections | grep mysql-server

mysql-server-5.7に関するメモを更新

Mysql-server-5.7を使用している場合は、上記の簡単なdpkg-reconfigureメソッドは使用できません。

パスワードがわかっている場合は、ログインして次のコマンドを実行してください。

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

あるいは、以下を使用することができます。

Sudo mysql_secure_installation

これにより、新しいrootパスワードを入力したいかどうかなど、インストールのセキュリティ保護に関する一連の質問が表示されます(強く推奨)。

Rootのパスワードがわからない場合は、 プロセスに関するUbuntu中心の記事を参照してください

詳細についてはを参照してください。

https://help.ubuntu.com/16.04/serverguide/mysql.htmlhttps:// help。 ubuntu.com/14.04/serverguide/mysql.html

95
user12345

私のために働いた唯一の方法はここに記述されたものです(私はubuntu 14.04を実行しています)。明確にするために、これらは私が従ったステップです:

  1. Sudo vim /etc/mysql/my.cnf
  2. 最後に次の行を追加してください。

    [mysqld] 
     
     skip-grant-tables
  3. Sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root'; - パスワード列がpasswordまたはauthentication_stringのどちらで呼び出されているかを判断するために上部を調べます

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and Host = 'localhost'; - 上から適切なパスワード列を使う

  8. FLUSH PRIVILEGES;

  9. exit

  10. Sudo vim /etc/mysql/my.cnf

  11. セキュリティ基準を守りたい場合は、ステップ2で追加した行を削除します。

  12. Sudo service mysql restart

参考のために: https://dev.mysql.com/doc/refman/5.7/ja/resetting-permissions.html

93
narko

私はLinux UbuntuでMySQLのパスワードをリセットするためのステップバイステップの最終的な解決策を共有しています。

ブログ(dbrnd.com)からの参照

手順1:MySQLサービスを停止します。

Sudo stop mysql

ステップ2:実行中のmysqldをすべて終了します。

Sudo killall -9 mysqld

ステップ3:セーフモードでmysqldを起動する。

Sudo mysqld_safe --skip-grant-tables --skip-networking &

ステップ4:mysqlクライアントを起動する

mysql -u root

ステップ5:ログインに成功したら、このコマンドを実行してパスワードを変更してください。

FLUSH PRIVILEGES;

ステップ6:あなたはmysqlのrootパスワードを更新することができます。

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

:MySQL 5.7では、列Passwordauthentication_stringと呼ばれていました。

ステップ7:このコマンドを実行してください。

FLUSH PRIVILEGES;
72
Anvesh

私にとってうまくいったこと(Ubuntu 16.04、mysql 5.7):

MySQLを停止する

Sudo service mysql stop

MySQLサービスディレクトリを作成します。

Sudo mkdir /var/run/mysqld

MySQLユーザーにサービスディレクトリへの書き込み権限を与えます。

Sudo chown mysql: /var/run/mysqld

パーミッションチェックやネットワーク接続なしで、MySQLを手動で起動します。

Sudo mysqld_safe --skip-grant-tables --skip-networking &

別のコンソールで、パスワードなしでログインします。

mysql -uroot mysql

その後:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

MySQLをオフにします。

Sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

MySQLサービスを通常どおりに起動します。

Sudo service mysql start
51
fabriciofreitag

MySQLのrootパスワードを変更します。

このメソッドはパスワードをコマンドライン履歴に公開します、これらのコマンドはrootとして実行されるべきです。

  1. Mysqlコマンドラインツールを介してログインします。

    mysql -uroot -poldpassword
    
  2. このコマンドを実行してください。

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

または

  1. このコマンドを実行して、現在のユーザーのパスワードを設定します(この場合は 'root')。

    SET PASSWORD = PASSWORD( 'newpassword');

34
faisalbhagat

私はUbuntuの18.04とMySQL 5.7の問題に直面し、これが解決策です

MySQLサーバ> = 5.7

Sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MySQLサーバ<5.7

Sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
31

これは私がUbuntu 16.04のためにやった魅力のように働きます。私がそこからそれを得たので下のリンクへの完全な信用。 [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts] [1]

MySQLを停止する

Sudo service mysql stop

MySQLサービスディレクトリを作成します。 Sudo mkdir/var/run/mysqld

MySQLユーザーにサービスディレクトリへの書き込み権限を与えます。

Sudo chown mysql: /var/run/mysqld

パーミッションチェックやネットワーク接続なしで、MySQLを手動で起動します。

Sudo mysqld_safe --skip-grant-tables --skip-networking &

パスワードなしでログインします。

mysql -uroot mysql

Rootユーザーのパスワードを更新してください。少なくともrootアカウントが以下のクエリによって更新されることを確認してください。必要に応じて選択して既存の値を確認してください。

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

MySQLをオフにします。

Sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

MySQLサービスを通常どおりに起動します。

Sudo service mysql start
12
lizard

MySQLのrootパスワードを変更したい場合は、端末で次のように入力します。

Sudo dpkg-reconfigure mysql-server-5.5

MySQLデーモンが停止し、新しいパスワードを入力するように求められます。

12
user2206324

これは私にとっての解決策です。私はUbuntu 18.04で働いています。 https://stackoverflow.com/a/46076838/2400373

しかし、最後のステップでこの変更が重要です。

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
9
juanitourquiza
  1. MySQLを停止しますSudo service mysql stop

  2. MySQLサービスディレクトリを作成します。 Sudo mkdir/var/run/mysqld

  3. MySQLユーザーにサービスディレクトリへの書き込み権限を与えます。 Sudo chown mysql:/ var/run/mysqld

  4. パーミッションチェックやネットワーク接続なしで、MySQLを手動で起動します。 Sudo mysqld_safe - スキップ許可テーブル - スキップネットワーク&

5.パスワードなしでログインします。 mysql -uroot mysql

6. rootユーザーのパスワードを更新します。

UPDATE mysql.user SET authentication_string = PASSWORD( '自分のパスワード')、plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%';出口;

  1. MySQLをオフにします。 Sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

  2. MySQLサービスを通常どおりに起動します。 Sudoサービスmysql起動

9

このソリューションはMySQLの以前のバージョンに属しています。ソケット認証を使用してMySQLにログインすることで、それを実行できます。

Sudo mysql -u root

その後、次のコマンドを実行できます。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

詳細はこちら にあります

7
Huseyin

Rogerdpackのコメントをエコーする:MySQLのrootパスワードがわからず、MySQLのデータや設定を気にしないのであれば、次のように再インストールしてrootのパスワードをリセットすることができます。

Sudo apt-get remove --purge mysql-server mysql-client mysql-common
Sudo rm -rf /var/lib/mysql
Sudo apt-get install -y mysql-server mysql-client 

インストール中に、rootのパスワードを選択できます。

enter image description here

6

現在のパスワードを知っていれば、mysqlサーバーを停止する必要はありません。 Ubuntuターミナルを開きます。以下を使用してmysqlにログインします。

mysql - username -p

次にパスワードを入力してください。これでmysqlコンソールに入ります。コンソール内で次のように入力します。

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

それから:を使って特権をフラッシュします。

> flush privileges;

それであなたはすべて終わりました。

3
Peter Mutisya

"root"のMysqlユーザパスワードを更新するには、そのためにはスーパーユーザ権限が必要になることに留意しなければなりません。スーパーユーザー特権を持っている場合は、次のコマンドを試してください。

MySQL 5.7.6以降

Sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5以前

Sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
2
alvaropaco

パスワードを変更したいシステムでMySQLのPASSWORD()を使用すると、MySQLログインでパスワードがクリアテキストで表示されることがあります[ source ]。 。パスワード、パスワードなどを安全に保つことは私にとって悪夢のように聞こえるので、私は以下のようにしたいと思います。

  1. あなたのローカルマシンで、あなたのパスワードでこれを実行してください:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
    

    Bashの履歴に表示されないように前のスペースに注意してください(Ubuntu以外のディストリビューションでは、これは異なる動作をする可能性があります - source )。

  2. サーバーマシンで、次のコマンドを実行してMySQLのrootパスワードを変更します(myhashを最初のコマンドで表示されたパスワードのハッシュに置き換えます)。

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
    
  3. ローカルコンピュータで、clearで端末の画面をクリアし、仮想端末のスクロールバックを消去して、上記のコマンドに表示されているクリアテキストのパスワードを非表示にします。

2
tanius

あなたはこれらすべてを必要としません。単にログインしてください。

mysql -u root -p

次に、現在のユーザーのパスワードをmysql>プロンプトとして変更します。

mysql> set password=password('the_new_password');
mysql> flush privileges;
2
mprivat

Ubuntu 18.04およびmysqlバージョン14.14 Distrib 5.7.22の場合は、次の手順に従ってmysqlパスワードをリセットします。

ステップ1

Sudo systemctl stop mysql

ステップ2

Sudo systemctl edit mysql

このコマンドは、nanoエディタで新しいファイルを開きます。このファイルを使用して、MySQLのサービスオーバーライドを編集します。これらはMySQLのデフォルトのサービスパラメータを変更します。このファイルは空になるので、次の内容を追加します。

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

ステップ3

Sudo systemctl daemon-reload
Sudo systemctl start mysql

ステップ4

Sudo mysql -u root

ステップ5

FLUSH PRIVILEGES;

ステップ6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

ステップ7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

ステップ8

Sudo systemctl revert mysql

そして最後に

Sudo systemctl restart mysql

今お楽しみください

1
Masum Billah

あなたはmysql 5.7 rootパスワードをリセットするためにこれらのいくつかのステップを試すことができます:

MySQLサービスの1日停止

Sudo /etc/init.d/mysql stop 

パスワードなしでrootとしてログインSudo mysqld_safe --skip-grant-tables

ログインmysql端末の後には、さらにコマンドを実行する必要があります。

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


Sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Mysqlサーバーを再起動した後まだエラーが発生する場合は、次のサイトにアクセスしてください。 MySQL 5.7 rootパスワードのリセットUbuntu 16.04

1
Inderpal Singh

提供されているphpmyadmin guiを使用してxamppにデプロイすると、mysqlパスワードを簡単に変更できます。

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
1
Mohd Arshil

mysql 5.6では、このコマンドが機能し、ウィザードを通してパスワードを設定できます。

Sudo dpkg-reconfigure mysql-server-5.6
1
MSS

MySQLパスワードの設定

  1. mySQLデータベースサービスを停止する

Sudo /etc/init.d/mysql stop

  1. 新しいmysqldディレクトリを作成します

Sudo mkdir/var/run/mysqld /

  1. mysqlユーザーにアクセス権を付与します

Sudo chown mysql/var/run/mysqld /

  1. mySQLをセーフモードで起動します...

須藤mysqld_safe --skip-grant-tables&

  1. パスワードなしでデータベースサーバーにログオンする

Sudo mysql -u root

  1. デフォルトのmysqlデータベースを使用します

mysqlを使用します。

  1. ルートパスワードを変更する

update user set authentication_string=PASSWORD("New_Passwore_Here") where User = 'root';

  1. 変更を保存する

    特権をフラッシュします。出口;

  2. mySQL safe_modeを停止し、MySQLデフォルトサービスを開始します

Sudo /etc/init.d/mysql stop

Sudo /etc/init.d/mysql start

  1. ルートの新しいパスワードを使用してMySQLデータベースに再度ログインします

Sudo mysql -u root -p

***ソース: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/

1
Viraj

このコマンドを使用することができます:

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

その後はflushを使ってください。

FLUSH PRIVILEGES;
1
Rahul Karande

パスワードまたはユーザー名を指定せずに接続するようにphpmyadminを設定している場合は、パスワードをリセットする代わりにローカルマシンで回避策があります。 mysqlApacheなどを起動してこれをチェックしてください。私はxamppをローカルマシンにインストールしました。したがって、xamppを起動すると、必要なすべてのサービスが起動します。さて、http://localhost/phpmyadminに行くと、すべてのデータベースが表示されます。これにより、ユーザー名とパスワードをphpmyadminの設定ファイル(phpmyadminのインストール場所にあります)に保存したことを確認できます。 xamppがインストールされている場合、phpmyadminフォルダはxamppインストールのルートフォルダにあります。 config.inc.phpファイルでWord passwordを検索します。そこにpasswordusernameがあります。

1
joseph

mySQLパスワードを変更/再設定するとき、上記の以下のコマンドは役に立ちませんでした。端末に入ってこれらのコマンドを使用するのは無意味であることがわかりました。代わりに、Sudoコマンドを使用してすべてを停止してください。それが助けるなら窓のためにシステム32を削除してください。

0
Rock

Mysqlの password()関数に関するドキュメント には、次のように記載されています。

この関数はMySQL 8.0.11で削除されました。

これはmysql v8.0.11以降に対する既存の回答のほとんどすべてを無効にします。

MySQLのドキュメントによると、rootのパスワードをリセットする 新しい一般的な方法 は次のとおりです。

前のセクションでは、特にWindowsとUnixおよびUnix風のシステム用のパスワード再設定手順を説明しました。あるいは、どのプラットフォームでも、mysqlクライアントを使用してパスワードをリセットできます(ただし、この方法は安全性が低くなります)。

必要に応じてMySQLサーバーを停止してから、--skip-grant-tablesオプションを使用して再起動します。これにより、誰もがパスワードなしですべての特権を使用して接続できるようになり、ALTER USERやSET PASSWORDなどのアカウント管理ステートメントが無効になります。これは安全ではないため、--skip-grant-tablesオプションを使用してサーバーを起動すると、リモート接続を防ぐために--skip-networkingが自動的に有効になります。

Mysqlクライアントを使用してMySQLサーバーに接続します。サーバーが--skip-grant-tablesで起動されたため、パスワードは必要ありません。

Shell> mysql

Mysqlクライアントで、アカウント管理ステートメントが機能するように付与テーブルをリロードするようにサーバーに指示します。

mysql> FLUSH PRIVILEGES;

次に、 'root' @ 'localhost'アカウントのパスワードを変更します。パスワードを使用したいパスワードに置き換えます。別のホスト名部分を持つルートアカウントのパスワードを変更するには、そのホスト名を使用するように指示を変更します。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

これで、新しいパスワードを使用してrootとしてMySQLサーバに接続できるはずです。サーバーを停止し、通常どおりに再起動します(--skip-grant-tablesおよび--skip-networkingオプションを指定しないで)。

0
Shadow

パスワードをリセットまたは変更するには、Sudo dpkg-reconfigure mysql-server-X.X(XXはインストールしたmysqlのバージョン、すなわち5.6、5.7)を入力します。その後、新しいパスワードを設定する画面が表示され、次のステップでパスワードを確認してしばらくお待ちください。 。それでおしまい。

0
Gaurav Paliwal

私はUbuntu 16.04.1 LTSでこのルートをたどらなければなりませんでした。それは上記の他の答えのいくつかの混在です - しかしそれらのどれも助けにはなりませんでした。私は1時間以上MySqlのWebサイトからSO上のすべてのものへの他のすべての提案を試してみました、私はついにそれがうまくいったのを手に入れました:

注:ユーザーrootのパスワードを入力してください。元のパスワードを持っていなかったので、使用する同じパスワードを入力しました新しいパスワードとして。

注:/var/log/mysqld.logのみ/var/log/mysql/error.logはありませんでした。

また、これは私にはうまくいきませんでした。
Sudo dpkg-reconfigure mysql-server-5.7

またしなかった:
Sudo dpkg-reconfigure --force mysql-server-5.5

MySQLサービスディレクトリを作成します。
Sudo mkdir /var/run/mysqld

MySQLユーザにサービスディレクトリへの書き込み権限を与えます。
Sudo chown mysql: /var/run/mysqld

それから:

  1. 現在のmysqld pidを殺す
  2. sudo/usr/sbin/mysqld&でmysqldを実行します。
  3. / usr/bin/mysql_secure_installationを実行します。

    mysql_secure_installationからの出力

    root @ myServer:〜#/ usr/bin/mysql_secure_installation

    MySQLサーバー配備の保護.

    ユーザーrootのパスワードを入力してください。

    VALIDATE PASSWORD PLUGINを使用すると、パスワードをテストし、セキュリティを向上させることができます。これはパスワードの強度をチェックし、ユーザーが十分に安全なパスワードだけを設定できるようにします。 VALIDATE PASSWORDプラグインを設定しますか?

    Yesの場合はy | Y、Noの場合はその他のキーを押します。no rootに既存のパスワードを使用します。 rootのパスワードを変更しますか? ((はいの場合はy | Y、いいえの場合は他のキーを押す):y

    新しいパスワード:

    新しいパスワードの再入力:デフォルトでは、MySQLのインストールには匿名ユーザーがいるため、ユーザーアカウントを作成しなくても誰でもMySQLにログインできます。これはテストを目的としており、インストールを少し滑らかにするためのものです。実稼働環境に移行する前にそれらを削除する必要があります。

    匿名ユーザーを削除しますか? (はいの場合はy | Y、いいえの場合はその他のキーを押します):y成功。

    通常、rootは 'localhost'からの接続のみを許可されるべきです。これにより、誰かがネットワークからのrootパスワードを推測できなくなります。

    リモートでrootログインを許可しない(はいの場合はy | Y、いいえの場合はその他のキーを押します):y成功。

    デフォルトでは、MySQLには誰でもアクセスできる 'test'という名前のデータベースが付属しています。これもテスト専用であり、運用環境に移行する前に削除する必要があります。

    テストデータベースを削除してアクセスしますか? (はいの場合はy | Y、いいえの場合はその他のキーを押します):y

    • テストデータベースを削除しています...成功しました。

    • テストデータベースの権限を削除しています...成功しました。

    特権テーブルを再ロードすると、それまでに行われたすべての変更がただちに有効になります。

    特権テーブルを今すぐ再読み込みしますか? (はいの場合はy | Y、いいえの場合はその他のキーを押します):y成功。

    全部できた!

0
JGlass

MySQLのrootパスワードを変更します。もっと簡単に

これらのコマンドはすべてrootとして実行する必要があります。

古いパスワードを使用してMySQLコマンドラインツールを介してログインします。

ステップ-1

mysql -uroot -p"your_old_password"

その後、以下のコマンドを実行してください。

ステップ-2

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

方法-2(上記のコマンドを使ってあなたの古いパスワードを使って最初のログイン)

現在のユーザーのパスワードを設定するこのコマンドを実行します。

SET PASSWORD = PASSWORD('your_new_password');

上記のコマンドは現在のユーザー用です。他のユーザーのパスワードを変更したい場合は、 "root"の代わりにユーザー名を入力できます。

0
PyDevSRS