さくらVPSを借りて、wordpressを使ってブログを書いているのだけれど、
このところ気づいたら以下の様なページになり、ページが観覧できないようになっていた。

ひとまずコンソールからVPS上の仮想マシンへログインして、mysqlが起動しているかを確認してみる 

ps aux|grep mysqld

確認するとどうやらmysqlは動いている。

あれ?と思い、次は権限周りを確認してみようかとroot権限でmysqlへアクセスしてみる
mysql -uroot 

すると、下記みたいなエラーが

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

やっぱし、mysqlの権限関係が設定されていないような気がしたので、
http://www.goofoo.jp/2011/11/1457
↑この辺を参考に権限を設定してみる。
(以下、上記サイトを参考に実行したコマンドだけ記述します)

1.mysqlを一旦停止
service mysqld stop
 
2. セーフティモードでmysqlを起動
mysqld_safe –skip-grant-tables &

3. rootユーザでmysqlへアクセスして、mysql.userの中身を確認
mysql -u root
select * from mysql.user;

4. 上記3で確認したらuserテーブルの中にデータが入っていたので、一旦データをdumpして保存しておく(参考サイトでは空だったので、ちょっと意表つかれた感じ。なぜや。。) 

quit; ←一旦mysqlを抜ける
mysqldump -uroot mysql user > /tmp/user.sql ←/tmp以下に保存(ってあれ、これ通るのか、、なんやこれw)

5. userテーブルのデータを削除して、新しく権限を追加

truncate table user;  ←userテーブルを空にする
flush privileges; ←権限周りを一度反映(削除を反映)
grant all privileges on *.* to root@localhost identified by ‘パスワード’ with grant option; ←パスワードを設定してユーザと権限の追加
flush privileges; ←追加した情報を反映

6. セーフティモードで動かしているmysqlをストップさせ、再度起動
quit; ←mysqlから抜ける
ps aux|grep mysqld ←mysqlの起動プロセスを確認
kill -KILL [mysqld_safe のPID]  ←確認したmysql_safeのプロセスIdを止める
kill -KILL [mysqld のPID] ←確認したmysqldのプロセスを止める
service mysqld start ←mysqlを再度起動させる

ここまで来たら、mysql -uroot -p でmysqlに入れることを確認!
今回は難なく入れたので、よっしゃ!と思いWordpressのページをリロード!

変わってねー、、、なぜ、、

と思ったけど、さっきホストを「localhost」で指定したからか。
あと、wp-config.php に設定している、ユーザ名とパスワードもrootではないことに気づく。

そんなわけで、再度、以下のように実行

※以下で使う大文字はこちらを表します
DB_USER: wp-config.phpのDB_USERに設定されているユーザ名
DB_PASSWORD: 同ファイルのDB_PASSWORDに設定されているパスワード
HOST: さくらVPSのDNS(tk2-***-*****.vs.sakura.ne.jpみたいなやつ。sshするときに使うホスト名)

grant all privileges on *.* to DB_USER@’HOST’ identified by ‘DB_PASSWORD’ with grant option;

flush privileges;

これでさくらVPSからのアクセスを許容(ホントはlocalhostで接続させる様にしたいけど、ひとまずこれで)

これで無事に動き始めました!

投稿者 iyken

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です