214

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

phpmyadmin もセットアップしていますが、phpmyadmin は自動的に更新されますか?

4

35 に答える 35

101

ubuntuサーバーでルートパスワードをリセットする公式で簡単な方法...

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

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

ルート パスワードがわからない場合は、プロセスに関するこの Ubuntu 中心の書き込みを参照してください

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

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

于 2014-03-27T03:57:47.367 に答える
79

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 ルート パスワードを更新できます。

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

: MySQL 5.7 では、列Passwordは と呼ばれauthentication_stringます。

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

FLUSH PRIVILEGES;
于 2015-09-08T05:03:21.910 に答える
36

MySQL ルート パスワードを変更します。

この方法では、パスワードがコマンドライン履歴に公開されます。これらのコマンドは root として実行する必要があります。

  1. mysql コマンド ライン ツールからログインします。

    mysql -uroot -poldpassword
    
  2. 次のコマンドを実行します。

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

また

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

    SET PASSWORD = PASSWORD('新しいパスワード');

于 2013-10-26T20:22:44.097 に答える
13

MySQL ルート パスワードを変更する場合は、ターミナルで次のように入力します。

sudo dpkg-reconfigure mysql-server-5.5

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

于 2015-12-06T10:15:24.543 に答える
10

これが私にとっての解決策です。私は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'; 
于 2018-11-20T03:22:22.430 に答える
3

これはすべて必要ありません。ログインするだけです:

mysql -u root -p

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

mysql> set password=password('the_new_password');
mysql> flush privileges;
于 2018-03-11T18:09:08.520 に答える
2

password() 関数に関する mysql のドキュメントには次のように書かれています。

この関数は 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' アカウントのパスワードを変更します。パスワードを使用するパスワードに置き換えます。ホスト名の部分が異なる root アカウントのパスワードを変更するには、そのホスト名を使用するように手順を変更します。

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

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

于 2018-10-28T10:52:15.273 に答える
1

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

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
于 2016-12-21T04:41:07.737 に答える
1

MySQL 8.0 ガイドで推奨されている公式の手順は見ていませんが、これだけでうまくいきました。これらの手順の概要を次に示します。

  1. 実行中の場合は、MySQL サーバーを停止します/var/lib/mysql//var/run/mysqld/、または/usr/local/mysql/data/を調べて、サーバーのプロセス ID を含む pid ファイルを見つけます。通常、ファイルは mysqld またはシステムのホスト名で始まり、.pid で終わります。次のコマンドで、見つけたmysql-data-directoryとを置き換えます。host_name

    $ sudo kill `sudo cat /mysql-data-directory/host_name.pid`
    
  2. このコマンドは、SQL ステートメントを含むテキスト ファイルを作成し/tmp/mysql-initmysql ユーザーを所有者にします。MyNewPassコマンドを自分のパスワードに置き換えます。

    $ echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';" > /tmp/mysql-init && sudo chown mysql /tmp/mysql-init
    
  3. コマンド ラインで次のコマンドを実行して、MySQL サーバーを起動します。この後、パスワードが更新され、 でサーバーを再度閉じることができますCTRL+C

    $ sudo mysqld --user=mysql --init-file=/tmp/mysql-init &
    
  4. パスワードを使用して一時ファイルを削除します。

    $ sudo rm /tmp/mysql-init
    
于 2019-10-14T15:23:36.763 に答える