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

MySQLサーバーのルートパスワードをリセットする

    デフォルトでは、MySQLサーバーはパスワードなしでrootスーパーユーザーとともにインストールされます。パスワードを必要とせずに、または空白のパスワードを入力することにより、rootとしてMySQLサーバーに接続できます。ただし、rootのパスワードを設定していて、パスワードを忘れたり思い出せなかったりした場合は、MySQLのrootパスワードをリセットする必要があります。

    MySQLリファレンスマニュアルには、rootのパスワードをリセットする方法の詳細な手順が記載されています。これは次のとおりです。

    Windowsでの手順:

    1. MySQLが管理者として実行されているWindowsシステムにログオンします。
    2. MySQLサーバーが実行されている場合は、停止します。 Windowsサービスとして実行されているサーバーの場合は、サービスマネージャーに移動します。

      スタートメニュー->コントロールパネル->管理ツール->サービス

      次に、リストからMySQLサービスを見つけて、停止します。

      サーバーがサービスとして実行されていない場合は、タスクマネージャーを使用してサーバーを強制的に停止する必要があります。

    3. テキストファイルを作成し、その中に次のコマンドをそれぞれ1行に配置します。
      UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
      FLUSH PRIVILEGES;
      
      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
      
      Save the file with any name. For this example the file will be C:\mysql-init.txt.
    4. Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
    5. If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly. At the DOS command prompt, execute this command:
      C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

      --init-fileオプションで指定されたファイルの内容は、サーバーの起動時に実行され、rootパスワードが変更されます。サーバーが正常に起動したら、C:\mysql-init.txtを削除する必要があります。

      MySQLインストールウィザードを使用してMySQLをインストールした場合は、-defaults-fileオプションを指定する必要がある場合があります。

      C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
               --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"
               --init-file=C:\mysql-init.txt

      適切な--defaults-file設定は、ServicesManagerを使用して見つけることができます。

      スタートメニュー->コントロールパネル->管理ツール->サービス

      リストからMySQLサービスを見つけて右クリックし、[プロパティ]オプションを選択します。 [実行可能ファイルへのパス]フィールドには、-defaults-file設定が含まれています。現在の作業ディレクトリに関係なく、必ず--init-file引数にファイルへの完全なシステムパスを指定してください。

    6. MySQLサーバーを停止してから、通常モードで再起動します。 MySQLサーバーがサービスとして実行されている場合は、Windowsサービスウィンドウからサーバーを起動します。サーバーを手動で起動する場合は、通常使用するコマンドを使用してください。
    7. 新しいパスワードを使用してMySQLサーバーに接続します。また、完了したらmysql-init.txtファイルを削除することを忘れないでください。

    UnixおよびLinux環境の場合、rootパスワードをリセットする手順は次のとおりです。

    1. Unix rootユーザーとして、またはmysqldサーバーが実行されているのと同じユーザーとしてUnixシステムにログオンします。
    2. サーバーのプロセスIDを含む.pidファイルを見つけます。このファイルの正確な場所と名前は、ディストリビューション、ホスト名、および構成によって異なります。一般的な場所は、/ var / lib / mysql /、/ var / run / mysqld /、および/ usr / local / mysql /data/です。通常、ファイル名の拡張子は.pidで、mysqldまたはシステムのホスト名で始まります。

      次のコマンドで.pidファイルのパス名を使用して、mysqldプロセスに通常のkill(kill -9ではない)を送信して、MySQLサーバーを停止します。

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

      catコマンドで引用符を転送するのではなく、バッククォートを使用していることに注意してください。これらにより、catの出力がkillコマンドに置き換えられます。

    3. テキストファイルを作成し、その中に次のコマンドを1行に配置します。
      UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
      FLUSH PRIVILEGES;

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

      任意の名前でファイルを保存します。この例では、ファイルは〜/mysql-initになります。

    4. 特別な--init-file=〜/ mysql-initオプションを使用してMySQLサーバーを再起動します:
      shell> mysqld_safe --init-file=~/mysql-init &

      init-fileの内容は、サーバーの起動時に実行され、rootパスワードが変更されます。サーバーが正常に起動したら、〜/mysql-initを削除する必要があります。

    5. サーバーを通常どおり再起動します。新しいパスワードを使用してMySQLサーバーに接続します。

    または、どのプラットフォームでも、mysqlクライアントを使用して新しいパスワードを設定できますが、パスワードをリセットする方法は安全性が低くなります(詳細な手順はこちら)。

    1. mysqldを停止し、-skip-grant-tables --user =rootオプションを使用して再起動します(Windowsユーザーは--user =root部分を省略します)。
    2. 次のコマンドでmysqldサーバーに接続します:
      shell> mysql -u root
    3. mysqlクライアントで次のステートメントを発行します。
      mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
          ->                   WHERE User='root';
      mysql> FLUSH PRIVILEGES;

      'newpwd'を、使用する実際のルートパスワードに置き換えます。

    4. 新しいパスワードを使用して接続できるはずです。


    1. 共通フィールドを持たない2つのテーブルを組み合わせる

    2. now()関数から時間を減算します

    3. 日付範囲間の日付を生成する

    4. LAST_DAY()の例– MySQL