sql >> データベース >  >> RDS >> Mysql

MySQLルートパスワードをリセットする方法

    MySQLは、Webアプリケーションで最も人気のあるデータベース管理システムの1つです。 MySQLには、多くのWebサービスと同様に、rootパスワードまたは管理者レベルのパスワードがあります。ルートパスワードを使用すると、ユーザーはデータベース内の最上位の機能を実行できます。

    MySQLを設定する際、セキュリティ関連の懸念からデータベースのルートパスワードを設定することをお勧めします。ただし、これは、rootパスワードなしでMySQLを使用できないことを意味するものではありません。手元のタスクについて考え、rootパスワードを設定するかどうかを決定するのはあなた次第です。

    MySQLルートパスワードのリセット

    「MySQLルートパスワードをリセットする方法」について、MySQLユーザーからの質問はたくさんあります。ルートパスワードを設定したが、残念ながらそれを見失った場合は、この記事のチュートリアルで、LinuxとWindowsの両方でルートパスワードをリセットするプロセスについて説明します。

    前提条件

    • 既存のMySQLデータベース
    • MySQLデータベースをホストしているPCの管理者権限
    • MySQLを実行しているWindowsまたはLinuxサーバーへのアクセス
    • コマンドラインインターフェイスまたは端末アクセス
    • テキストエディタ。 (Windowsユーザーにはデフォルトでメモ帳がコンピューターにインストールされていますが、Linuxユーザーにはvimがプリインストールされているため、心配する必要はありません)。

    上記の前提条件をすべて満たしたら、次に進んで、MySQLルートパスワードをリセットまたは変更する方法を学びましょう。

    このプロセスは2つの面で行います:

    1. LinuxでMySQLルートパスワードをリセットする方法
    2. WindowsでMySQLルートパスワードをリセットする方法

    1。 LinuxでMySQLルートパスワードをリセットする方法

    ステップ1:MySQLにログインします

    Linuxオペレーティングシステムを起動するときは、通常MySQLを実行しているのと同じユーザーにログインすることが不可欠です。これは、rootユーザーが所有するファイルの作成など、システムに損傷を与える可能性のあるエラーを回避するために重要です。ただし、MySQLサーバーを起動したら、rootユーザーとしてログインすることをお勧めします。これを行うには、以下の構文を使用してMySQLを起動するようにしてください。

    user=fosslinux

    ステップ2:MySQLサービスで使用される.pidファイルを見つける

    次のステップは、.pidファイルを見つけることです。ほとんどのLinuxシステムでは、次の場所に保存されます:

    /var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/. 

    すべてのLinuxシステムが同じであるとは限らないため、上記のパスのいずれかを試して、ファイルを見つけることができるかどうかを確認できます。ファイルをすばやく見つけるために、検索を mysqldで始まるファイルに絞り込むことができます。 (またはホスト名)で終わり、.pid。で終わります

    注: ファイルを検索すると、プロセスが簡素化されます。したがって、試してみることをお勧めします。

    ファイルを見つけたら、次の手順に進みます

    ステップ3:mysqld/.pidプロセスを強制終了する

    新しいrootパスワードをリセットまたは作成する前に、まずMySQLサーバーを停止する必要があります。これは、ターミナルを開き、以下のコマンドラインを実行することで実行できます。

    kill `cat /mysql-data-directory/host_name.pid`

    注: mysql-data-directory / host_name.pidを置き換えます 手順2で見つけたファイル名を使用します。また、エラーが発生しないように、ファイルパス全体を指定することが重要です。

    追加のヒント: 一重引用符キーではなく、必ずバックティックキーを使用してください。バックティックキーは、ほとんどのコンピューターのタブキーの上で、1つの数字キーの前にあります。

    ステップ4:新しいルートパスワードファイルを作成する

    次に、お気に入りのテキストエディタを開きます。この場合、Vimテキストエディタを使用します。ショートカットCTRL+ALT + Tを使用してターミナルを開き、次のコマンドを実行します。

    sudo vim mysql-init

    注:上記のコマンドを実行した後にエラーが発生した場合は、次のコマンドを実行して他のプロセスを続行してください。

    sudo apt install vim

    次に、ファイルに以下の行を追加します。

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

    注: 上記の行を端末に手動で入力するときは、すべてのセミコロンと一重引用符を含めることを忘れないでください。また、「 NewPassword」を置き換えます 使用する新しいパスワードを含む」フレーズ。最後に、強力で安全なパスワードを使用していることを確認するか、ここを参照して、Linuxで強力なランダムパスワードを生成する方法を確認してください。

    上記のコマンドは、コマンドの実行時に使用しているホストマシンでのみ機能します。ただし、別のシステムに接続する場合は、コマンドを機能させるために、ローカルホストを関連する、または適切なホスト名に置き換えることをお勧めします。そうしないと、エラーが発生します。

    新しいファイルをテキストエディタに追加したら、次の場所に保存します。

     home/mysql-init.

    ステップ5:MySQLサーバーを再起動し、新しく作成したパスワードを適用する

    新しく作成したパスワードに加えた変更を適用するときが来ました。まず、ターミナルで以下のコマンドを実行して、MySQLサーバーを再起動します。

    mysqld --init-file=/home/mysql-init &

    このコマンドはMySQLを起動し、前の手順で作成したテキストファイルのパスワードを適用します。サーバーの起動に使用する方法によっては、initコマンドの前に–defaults-fileなどの他のオプションを追加する必要がある場合があります。

    新しく作成したパスワードを適用してMySQLサーバーを再起動したら、クリーンアップします。これを行うには、rootユーザーとしてMySQLサーバーにログインし、作成したパスワードが実際に機能することを確認します。ファイルが正常に機能することを確認したら、次に進み、上記の手順4で作成したファイルを削除します。

    2。 WindowsでMySQLルートパスワードをリセットする方法

    Windowsユーザーで、WindowsでMySQLルートパスワードをリセットする方法を知りたい場合は、この記事を最後まで読んでください。

    ステップ1:MySQLサーバーを停止します。

    MySQLサーバーを停止する前に、管理者としてログインしていることを確認する必要があります。

    • ウィンドウのWin+Rキーを押して、次のタイプの[実行]ダイアログボックスを起動します。
    services.msc
    • 次に[OK]をクリックします。
    • サービスのリストを下にスクロールして、MySQLサービスを見つけます。それを右クリックして、下の画像に示すように[停止]オプションを選択します。

    ステップ2:お気に入りのテキストエディタを開きます

    説明のために、デフォルトのメモ帳テキストエディタを使用します。ただし、プロセスは類似しているため、別のテキストエディタを使用している場合でも、びっくりしないでください。

    • [スタート]メニューをクリックして、メモ帳を検索します。それをクリックして起動します。

    または、次のパスを使用してメモ帳を検索します:メニュー>Windowsアクセサリ>メモ帳。

    ステップ3:パスワードコマンドを使用して新しいパスワードテキストファイルを作成する

    以下の構文をコピーしてテキストエディタに貼り付け、手動で入力する際のエラーを回避します。

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

    Linuxの場合と同様に、セミコロンと一重引用符を保持し、 NewPasswordを置き換えてください。 MySQLで使用する予定の新しいパスワードを使用したフレーズ。

    [ファイル]オプションをクリックし、[名前を付けて保存]をクリックして、テキストファイルのパスワードをハードドライブのルートに保存します。ファイルをmysql-init.txtとして保存します。

    したがって、localhostコマンドは、システムでのみパスワードの変更を行うことができます。したがって、ネットワークなどの別のシステムでパスワードを変更する場合は、ローカルホストを別のシステムの適切なホスト名に置き換えてください。

    ステップ4:CMD(コマンドプロンプト)を起動する

    • キーボードのCtrl+Shift+Escキーをクリックします
    • ファイルメニューを選択し、新しいタスクを実行します
    • cmd.exeと入力します [管理者として実行]チェックボックスを選択します
    • [OK]をクリックして、管理者権限でコマンドプロンプトを起動します。

    ステップ5:MySQLサーバーを再起動して新しい構成ファイルを適用する

    • コマンドプロンプトを使用して、MySQLディレクトリに移動します。
    cd C:\Program Files\MySQL\MySQL Server 8.0\bin
    • 次に、次のコマンドを入力します。
    mysqld --init-file=C:\\mysql-init.txt

    注: mysql-initの前に2つの円記号があることを考慮に入れる必要があります 促す。さらに、上記の手順2で説明に使用した名前とは異なる名前を使用した場合は、2つの円記号の直後に間隔を空けずにその名前を使用する必要があります。

    これが完了すると、新しく作成されたパスワードを使用して、rootユーザーとしてMySQLにログインできるようになります。

    新しいパスワードが問題なく機能することを確認するために、必ず再確認してください。確認後、C:\ディレクトリに保存したmysql-init.txtファイルを削除します。

    MySQLルートパスワードをリセットするための一般的な手順

    前のセクションでは、LinuxおよびWindowsのMySQLルートパスワードをリセットするための詳細な手順を説明しました。または、任意のプラットフォームを使用している場合は、MySQLクライアントを使用してパスワードをリセットできます。ただし、この方法は前述の方法に比べて安全性が低いことに注意することが重要です。

    MySQLクライアントを使用するには、以下で強調表示されている手順に従います。

    1.最初のステップは、MySQLサーバーを停止することです。停止した後、以下のオプションで再起動します:

    --skip-grant-tables

    このオプションを使用すると、誰でもパスワードなしで接続できますが、すべての権限が有効になり、 ALTER USERなどのアカウント管理ステートメントが無効になります。 およびパスワードの設定。

    サーバーが–skip-grant-tables で起動する場合、このオプションは安全でないと見なされます オプション、スキップネットワーキング リモート接続を無効にすることで有効になります。

    2.次に、以下のコマンドを実行してMySQLサーバーに接続します。

    mysql

    注: サーバーは–skip-grant-tables で起動したため、MySQLクライアントを使用してMySQLサーバーを再起動するときにパスワードは必要ありません。 。

    3.ここで、MySQLクライアントで、以下のコマンドを実行して、サーバーに許可テーブルを再ロードするように指示します。これにより、以前に停止されていたアカウント管理ステートメントが再び機能するようになります。

    mysql> FLUSH PRIVILEGES;

    コマンドを実行した後、ALTERUSERコマンドを実行してパスワードを変更します。 MyNewPassを置き換えます 、使用する予定の新しいパスワードを使用します。

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

    注: 別のシステムのルートパスワードを変更するには、必ずシステムのホスト名でローカルホストを変更してください。

    これで、作成したパスワードを使用して、rootユーザーとしてMySQLサーバーに接続できます。次に、 –skip-grant-tables を使用せずに、サーバーを通常どおり停止して再起動します。 オプションで、skip-networking変数を有効にしません。

    MySQLルートパスワードを正常にリセットできたのはこれだけです。

    結論

    以前にMySQLにrootパスワードを割り当てていたが、それを忘れた場合は、この記事に示すように、MySQLに新しいパスワードを割り当てることでパスワードをリセットできます。

    注: MySQLは接続にrootパスワードを必要としません。ただし、MySQLにrootパスワードを割り当てないことの欠点は、安全性が低く、貴重品を失う可能性があることです。したがって、MySQLにrootパスワードを設定したことがない場合は、上記の手順に従ってrootパスワードを作成し、データと情報を保護することを強くお勧めします。


    1. 並行トランザクションでの更新の喪失の問題

    2. 初心者向けのSQL以下(=)演算子

    3. ORA-01775をデバッグする方法:シノニムのチェーンをループしますか?

    4. Word、Excel、PowerPointでのキーボードのみのナビゲーションの使用(パート1:リボン)