MySQLのパスワード変更 rootの初期パスワードを忘れたときの対処方法は?
  • facebookページ
  • twitterページ
  • 2019.12.27

    MySQLのパスワード変更 rootの初期パスワードを忘れたときの対処方法は?

    MySQLのパスワード変更方法についてまとめています。

    実行OSはUbuntu 18.04、MySQLは5.7.28を前提としています。

    MySQLのパスワードを変更するには、set passwordを使用

    mysqlコマンドにて、MySQLのrootアカウントで接続し、set passwodでパスワードを設定します。

    上記の例では、root@localhostアカウントに、パスワード「my-passowrd」を設定しています。

    MySQL 5.6と5.7では、パスワードの保管カラムが変更

    MySQL5.7では、パスワードのハッシュ値はmysq.userテーブルのauthentication_stringに変更になりました。5.6では、mysql.userテーブルのpasswordカラムにハッシュ値が格納されていました。

    MySQL5.7では、ホスト名、ユーザ名、パスワードハッシュ値一覧を取得するSQLは以下のようになります。

    MySQLのrootパスワードを忘れたときの対処方法

    rootの初期パスワードを確認するには、MySQLのログをチェック

    MySQL5.7は、初回起動時にrootの初期パスワードをランダムに設定します。設定された初期パスワードは、以下のコマンドで確認できます。

    また、OSのroot権限での実行が出来る場合は、mysqlをセーフモードで実行してパスワードを上書き変更することが可能です。

    参考)MySQLでrootパスワードを忘れた場合の対処方法

    コマンド行からrootパスワードを割り当てるには、mysqladmin

    mysqladminで、MySQLのrootアカウントのパスワードを変更できます。

    上記の例は、MySQLのパスワードをmypassに変更しています。

    MySQLにパスワード無しでログインするには、skip-grant-tablesを設定

    MySQL5.7のインストール時にmysql_secure_installationを実行している場合は、パスワードの長さや使用文字種の制限が設定され、パスワード無しや短いパスワードの設定ができなくなります。

    【関連記事】
    MySQL 8.0をUbuntu 18.04にインストール リポジトリの登録方法は?

    ローカルの検証環境など、パスワードなしでMySQLにログインしたい場合は、/etc/mysql/mysql.conf.d/mysqld.cnfの[mysqld]エントリに、skip-grant-tablesを追加します。

    ※上記では、MySQLのrootパスワードを、空(””)に設定しています。

    さらに、MySQLアカウントに空のパスワードを設定します。

    mysqlコマンドを実行して、パスワード無しでMySQLサービスに接続することができました。

    まとめ

    • SQLのset passwordで、MySQLアカウントのパスワードを変更可能
    • MySQL5.7の初期rootパスワードは、ログに出力されている
    • MySQLにパスワードなしでログインするためには、mysqld.cnfにskip-grant-tablesを設定


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE