例えば、前任者がrootのパスワードを残していなくて、にっちもさっちもいかない…なんて時の為にメモ。
まずmysqlサービスを停止し、オプション付きで起動し直します。
1 2 3 4 | $ sudo service mysqld stop $ sudo mysqld_safe --skip-grant-tables --skip-networking 170907 21:38:47 mysqld_safe Logging to '/var/log/mysqld.log'. 170907 21:38:47 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql |
mysqld_safeコマンドのオプションについて解説します。
- –skip-grant-tables:指定する事で、誰でもパスワード無しで接続できるようになり、すべての権限が付与されます。
- –skip-networking:TCP/IPアクセスを無効にします。–skip-grant-tablesを付与すると、セキュリティの面で大きな問題があり危険ですので、このオプションを併せて付与します。
パスワード無しでmysqlに接続できるようになります。mysqld_safeを実行したターミナルはプロセスの終了待ちとなりますので、別のターミナルで接続します。
1 | $ mysql |
mysqlに接続した後、下記のSQLを実行し、rootのパスワードを変更し、mysqlから切断します。
1 2 3 4 | mysql> UPDATE mysql.user SET Password=PASSWORD('<新しいパスワード>') -> WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit |
mysqlを再起動します。
1 2 3 | $ sudo service mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ] |
この手順でrootユーザーのパスワードを変更出来ます。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。