CentOS6.2へ移行しようと思ったら、mysqlのrootのパスワードを忘れていた。
rootのパスワードをかけ直してみた。
参考URL
※mysql-server.i686 5.1.52-1.el6_0.1 の場合。
(1)外部から見えなくする。
(2)mysqlデーモン停止。
# service mysqld stop
(3)GRANT無効モードでmysqldを起動。
# su mysql -c ‘/usr/libexec/mysqld –skip-grant-tables’
/etc/my.cnf に、
[mysqld]
skip-grant-tables
を追加して、普通に再起動してもいいらしい。
(4)ルートのパスワードを変える。
# mysqladmin –user=root password **********
mysqladmin:
You cannot use ‘password’ command as mysqld runs
with grant tables disabled (was started with –skip-grant-tables).
Use: “mysqladmin flush-privileges password ‘*'” instead
で、ダメだった。
この状態でLANからphppgadminからパスワードを変更しようとしたら失敗したので、同じ方法かもしれない。
普通にデータベースに接続し、
# mysql mysql
ユーザーの設定内容を確認し、
mysql> select user,host from user;
+————-+———–+
| user | host |
+————-+———–+
| root | localhost |
| 他のユーザー|
+————-+———–+
パスワードを消したいユーザーのpasswordだけnullにする。
mysql> update user set Password=null where Host=’localhost’ and User=’root’;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1
結果を確認。
mysql> select user,host,password from user;
+————-+———–+——————————————-+
| user | host | password |
+————-+———–+——————————————-+
| root | localhost | 空っぽになっていればOK |
| 他のユーザー|
+————-+———–+——————————————-+
mysql> exit
Bye
これで、
# mysqladmin –user=root password **********
できるかと思ったけど、–skip-grant-tablesで起動中は password 機能は使えないらしい。
参考どおりにはいかないらしいので、普通に再設定する。
# mysql -u root
mysql> SET PASSWORD FOR root@localhost=PASSWORD(‘**********’);
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
GRANT無効モードのsqldを停止。
# ps aux | grep mysqld
root 2432 0.0 0.3 8048 1640 pts/0 S+ 11:44 0:00 su mysql -c /usr/libexec/mysqld –skip-grant-tables
mysql **** 0.0 3.1 135468 16252 ? Ssl 11:44 0:00 /usr/libexec/mysqld –skip-grant-tables
root **** 0.0 0.1 5392 832 pts/1 S+ 11:48 0:00 grep mysqld
# kill -TERM 2432
通常モードで再起動。
# service mysqld start
なお posgreSqlの場合は
まず、情報漏れを防ぐため、ネットワークのLANケーブルを抜いてください。
pg_hba.confのエントリを編集し直します。
# TYPE DATABASE USER IP-ADDRESS/CIDR-mask METHOD
host all all 127.0.0.1/32 password
この、passwordと書いているエントリの部分をtrustへ変更します
そしてpostgreSQLを再起動し、postgresユーザーで全部いじれるようになります。
使えるようになったらtrustとした部分をpasswordにもどし、ネットワークへつないでください。
らしいが真偽のほどは不明。