WordPressで「データベース接続確立エラー」がでた場合の対処法

自宅のwordPressが遅いので

思い切ってサーバの移行を行ってみました。

Linux(CentOS)をシャットダウンし再起動してみると、wordPressが

「なっなっ何と」

「データベース接続確立エラー」となってしまうではないか。

慌てました。慌てました。

ググりまくりです。( ゚Д゚)

wordPressのログより wp_options テーブルが壊れていることが分かりました。


復旧手順を下記に説明します。


①Mysql へログインします。

 ==>    “sudo mysql -u root -p”

そのあとパスワード入れます。

②データベースの切り替え

==>   “use wp”

wordPressデータベースを指定します。

③破損テーブルをチェックします

==> “check table wp_options;”

MsgTypeがError の場合は、お悔み申し上げます。

しかし安心してください。復旧コマンドがあるのです。

④テーブル復旧

==> “repair table wp_options;”

status=OK  がでれば復旧できました。

③のcheck tableで再確認しましょう。

⑤復旧OKならばDBを抜けます

==> “exit”

以上です。わたしのように焦らないでくださいね。

[root@localhost log]# sudo mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use wp
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> check table wp_options;
+---------------+-------+----------+----------------------------------------------------------+
| Table         | Op    | Msg_type | Msg_text                                                 |
+---------------+-------+----------+----------------------------------------------------------+
| wp.wp_options | check | warning  | Table is marked as crashed                               |
| wp.wp_options | check | warning  | 7 clients are using or haven't closed the table properly |
| wp.wp_options | check | error    | Record at pos: 272888 is not remove-marked               |
| wp.wp_options | check | error    | record delete-link-chain corrupted                       |
| wp.wp_options | check | error    | Corrupt                                                  |
+---------------+-------+----------+----------------------------------------------------------+
5 rows in set (0.13 sec)

mysql> repair table wp_options;
+---------------+--------+----------+--------------------------------------------------------+
| Table         | Op     | Msg_type | Msg_text                                               |
+---------------+--------+----------+--------------------------------------------------------+
| wp.wp_options | repair | info     | Wrong block with wrong total length starting at 110808 |
| wp.wp_options | repair | warning  | Number of rows changed from 263 to 256                 |
| wp.wp_options | repair | status   | OK                                                     |
+---------------+--------+----------+--------------------------------------------------------+
3 rows in set (0.36 sec)

mysql> check table wp_options;
+---------------+-------+----------+----------+
| Table         | Op    | Msg_type | Msg_text |
+---------------+-------+----------+----------+
| wp.wp_options | check | status   | OK       |
+---------------+-------+----------+----------+
1 row in set (0.00 sec)

mysql> exit
Bye
[root@localhost log]# 

Dice(DDNE)インストール

DynamicDNSサービスとは

 インターネット上のDNSサーバーに、ドメイン名を登録してくれるサービスのことをDynamicDNSサービスといいます。このサービスはドメイン名に対するIPアドレスをいつでも自由に変更することが出来ます。現在では、DtDNSDynDNSHAMMERNODEMyDNSなどの無料で登録してくれるサイトが数多くありますので、是非利用してみましょう。ちなみに私は、独自ドメインが登録できて無料の「MyDNS.jp」 を使用を使っております。

Dynamic DNSサービスを省略してDDNSとも呼びます。

詳しくはhttp://www.iodata.jp/products/plant/2002/npbbrsx/dyndds1.htmを見てください。

MyDNS登録方法

http://www.mydns.jp/

https://gyazo.com/28f863f06dc3f8a2e7066490d914540d

上記URLで新規にIDとパスワードを取得してください。
https://gyazo.com/1192c1ef7a07acbcccd59ecfe4bacdf1

詳細手順は下記手順を参照してください
https://gyazo.com/c7c34714436fb10aa2967b570204560a

DiCEとは

私はyahoo!BBへ加入しておりますが、固定IPアドレスでは料金が高くなるため可変IPアドレスで契約しております。IP`アドレスは変更されてしまいますので、自宅のWebサーバやメールサーバなどを公開するためには、一定期間でのIPアドレスとドメイン名の結び付けを行ってくれるソフトを探していました。そのソフトがDiCEなのです。ここではDiCEをインストールしてMyDNS.jpを登録します。

DiCEのダウンロードとインストール

このダウンロードサイトよりダウンロードしてください。

http://www.hi-ho.ne.jp/yoshihiro_e/dice/

インストールは指示に従って行えば簡単です。

https://gyazo.com/016d9712585d21c739f00ebca58edeae
https://gyazo.com/d5c676d279edb110cf301570958e9dde
MyDNSで設定した ホスト名/ドメイン名/ユーザ名/パスワード を設定する。

スケジュールは、状況に合わせて変更してください。

常にwindowsで常駐させておけば、グルーバルアドレスが変わっているか

自動監視し再設定してくれます。

mysqlログの見方

ログ出力先変更

vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
general_log=0
general_log_file=/var/log/mysql/query.log

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log   #<==ここを変更
pid-file=/var/run/mysqld/mysqld.pid

 

mysql再起動

[root@localhost log]# sudo service mysqld restart
mysqld を停止中: [ OK ]
mysqld を起動中: [ OK ]

 

ログ確認

[root@localhost log]# tail /var/log/mysql/mysqld.log
161114 09:35:27 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
161114 9:35:27 InnoDB: Initializing buffer pool, size = 8.0M
161114 9:35:27 InnoDB: Completed initialization of buffer pool
161114 9:35:27 InnoDB: Started; log sequence number 0 44233
161114 9:35:27 [Note] Event Scheduler: Loaded 0 events
161114 9:35:27 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
[root@localhost log]#

※socketエラーは調査中

 

クエリーログ

クエリーのログを出力したい場合は、下記のように設定する。

$ sudo vi /etc/my.cnf
・・・
[mysqld]
・・・
general_log=1
general_log_file=/var/log/mysql/query.log

クエリーのログが出力される。

[root@localhost log]# tail /var/log/mysql/mysqld.log
161114 09:35:27 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
161114 9:35:27 InnoDB: Initializing buffer pool, size = 8.0M
161114 9:35:27 InnoDB: Completed initialization of buffer pool
161114 9:35:27 InnoDB: Started; log sequence number 0 44233
161114 9:35:27 [Note] Event Scheduler: Loaded 0 events
161114 9:35:27 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
[root@localhost log]# tail /var/log/mysql/query.log
4 Query SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (241) ORDER BY meta_id ASC
4 Query SELECT * FROM wp_posts WHERE ID = 241 LIMIT 1
4 Query SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (241) ORDER BY meta_id ASC
4 Query SELECT * FROM wp_posts WHERE ID = 244 LIMIT 1
4 Query SELECT * FROM wp_posts WHERE ID = 244 LIMIT 1
4 Query SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (244) ORDER BY meta_id ASC
4 Query SELECT option_value FROM wp_options WHERE option_name = 'jpsq_sync_checkout'
4 Query UPDATE wp_options SET option_value = '0:0' WHERE option_name = 'jpsq_sync_checkout'
4 Query UPDATE `wp_options` SET `option_value` = '1479083179', `autoload` = 'yes' WHERE `option_name` = 'jetpack_next_sync_time_sync'
4 Quit
[root@localhost log]#

 

Linux ネットワーク確認・DHCP再読込

ifconfig コマンドの使い方をメモします

使用例1:IPアドレスの設定

ifconfig eth1 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
                         IPアドレス     サブネットマスク       ブロードキャストアドレス

 

使用例2:インターフェイスの起動/停止(DHCP再読み込み)

(起動)
ifconfig eth0 up

(停止)
ifconfig eth0 down

 

使用例3:ネットワーク環境を確認する

ifconfigコマンドを入力する。
https://gyazo.com/b63a8d81ad63cd715c78ea20eb141f34
①MACアドレス

②IPアドレス

③サブネットマスク

が表示できます。

eth0  は動作しているLAN識別を示します。

 

ちなみに私はルータでのDHCP割り当てで

MACアドレスを登録しています。

 

使用例3:CentOSでのネットワーク設定方法
https://gyazo.com/d1a1393caf0eeeb6b199146687f2cc1f
https://gyazo.com/46355d591575ea5fbe09e9464e3c9408
この場合はDHCPの設定だが、静的アドレスも設定できます。

変更後は「使用例2:インターフェイスの起動/停止(DHCP再読み込み)」を行ってください。

 

以上です。

要件をIF構文(ロジック)へ落とすためへのアドバイス 例)うるう年

プログラミング教育を行っていると

IF ~ else if  ~ else の ネスト階層地獄に落ちる方が

たくさんいます。

原因は、

①要件を紙に書くなどの設計作業を飛ばしているからと

②ネスト(階層)の深いIFに慣れていないにも関わらず、いきなり AND および OR を

使ってしまい論理が分からなくなってしまう

というループへはまってしまいます。

「うるう年」を例としましたが、ベース条件とそのベース条件に対しての例外という区分けで

要件を整理すれば、ぶれません。

この手順で慣れていきましょう。

https://gyazo.com/e2765013d4d3e5c7de0cbf0125c674ad

 

パソコン(私の商売道具)

開発パソコンは、一番下のドスパラで購入したi5 メモリ8GBマシンです。

windows10で仕事がらVmware で開発環境いくつも作ってプログラム開発してます。

一番上のノートブックで Cent OS(Linux) に wordPress と mysql,PHP インストールして解放しております。

やっぱり遅いですね。

(けど電気代がノートのほうが経済的なんですよ)

真ん中のIBMマシンは非力ながら CentOSでの検証用で使ってます。

最近はパソコン買うよりレンタルサーバ借りたほうが能力も高く安いですね。

時代は変わってきましたね。

teamviewer インストール 手順

パソコン遠隔操作ソフト「TeamViewer」のインストール方法

TeamViewerの実行時のタイムラグは0.5秒程度と凄い早く応答があるそうです。

横浜の弟のパソコンがwindows10へアップグレード(いまさらで怖いやつです)しましたが、

outlook2010 が動かないようです。

言ってることがわからない?

TeamViewerをインストールしてもらいました。outlookの問題でした。これは別途、アップします。本題のインストール手順です。

■インストール手順

TeamViewerをパソコンへインストールする方法

1.Windows用TeamViewerをダウンロードします。

TeamViewer – 窓の杜ライブラリ

2.ダウンロードしたインストール用Exeをダブルクリックして実行します。
インストール初期画面が表示されます。
f:id:MoneyReport:20150219080005p:plain

  • インストール
  • 個人/商用以外

を選択し、「詳細設定の表示」にチェックを付けて「同意する-次へ」ボタンをクリック。

インストール先の選択と、オプションの選択。
f:id:MoneyReport:20150219080113p:plain

インストール先はそのまま。
オプションはとりあえず「TeamViewer VPNの使用」のみ選択して、「完了」をクリックする。
リモート元から印刷を許す場合には「TeamViewerリモート印刷の使用」をチェック、TeamViewerの会議でOutlookを使いたい人は「Outlook用TeamViewer Meeting Add-Inの使用」をチェック。

インストール途中。
f:id:MoneyReport:20150219080233p:plain

インストール直後に使い方の説明が出てきます。
リモート接続と会議が出来るみたいです。
f:id:MoneyReport:20150219080250p:plain

リモートコントロール画面。PC様は繋がれる事も、繋ぐ事も出来るようです。
f:id:MoneyReport:20150220062110p:plain

会議画面がこちら。
f:id:MoneyReport:20150219080426p:plain

ちょっと分かりにくいですが、画面上部の青い部分の「リモートコントロール|会議」と書かれている所をクリックする事で画面表示が切り替わります。設定タブみたいなものですか。
Windowsへのインストールはこれで終了です。

wordPressをCentOSへインストールし公開開始

2016.11.01

自宅内でのLinuxサーバへ

wordPressをインストールし、検証してます。

「冷やし中華はじめました」のように

「wordPressはじめました」です。です。