rss ログイン
JJ1RLWのXOOPS Cube Siteにようこそ

メインメニュー

ログイン


ユーザー名:


パスワード:





パスワード紛失  |新規登録

オンライン状況

2 人のユーザが現在オンラインです。 (1 人のユーザが xpress ブログ を参照しています。)

登録ユーザ: 0
ゲスト: 2

もっと...

アーカイブ

カテゴリー

アクセスカウンタ

今日 : 160160160
昨日 : 385385385
総計 : 285704285704285704285704285704285704

カレンダー

2018年12月
« 11月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

xpress ブログ » » DATABASE

  カテゴリー ‘DATABASE’ のアーカイブ
WordPress for XOOPS

XOOPS 2.5.9、2.6.0(本家版)の補足

XOOPS 2.5.9、2.6.0(本家版)をインストールする際の補足で、XOOPS Cube日本語版を設置する際の相違点を説明します。
配布サイトよりダウンロードしたファイルのXoopsCore25-master.zip(2.5.9)、XoopsCore-master.zip(2.6.0)を解凍して、
htdocsディレクトリは、設置するXOOPSサイトのルート(XOOPS Cube日本語版のhtmlディレクトリに相当)となり、その下にある、
xoops_dataディレクトリは、XOOPS Cube日本語版のxoops_trust_pathと同じ様にXOOPSサイトから直接アクセス出来ないエリアに移動する。
xoops_libディレクトリは、XOOPS Cube日本語版のxoops_trust_pathに相当するのでにXOOPSサイトから直接アクセス出来ないエリアに移動する。

テストしているXOOPS 2.5.9の最新開発版のchangelog.250.txtを見ると次のバージョンは、2.5.10になる様な感じですね。

MySQL Workbench 8.0.13でのエクスポート時にエラー

MySQL Workbench 8.0.13でのエクスポート時にエラーが発生しまた。

Unknown table ‘column_statistics’ in information_schema (1109)
Operation failed with exitcode 2

環境は、クライアントがMySQL Workbench 8.0.13、サーバがMySQL 5.7.24です。(いずれもWindows)
解決策はバグレポートに記載がありました。

Bug #91640 Workbench 8 cannot export from MySQL 5.7
以下の部分の情報
———
[23 Oct 17:52] Flavio Escobar

Actually we can use an advanced option in Workbench to disable column statistics as per https://stackoverflow.com/a/52944315/1694902 – see below:

1. Go to Management/Data export
2. Choose the schema to export in the ‘Tables to export’ list
3. Click the ‘Advanced Options…’ button (top right)
4. Search for the option ‘Other/column-statistics’
5. Set the value to 0
6. Click the ‘Return’ button (top right)

According to the author of this post, “Unfortunately, you’ll have to do that every time you start MySQL Workbench.”
———
ここにある様にMySQL Workbenchのエクスポート時に、Advanced Optionsで、Other/column-statisticsの’TRUE’を’0’にすることで、エラーを吐かなくなります。

MySQL Workbenchのメインメニューを日本語化

以前からMySQL Workbenchのメインメニューを日本語化するためのxmlファイルを当サイトの「ダウンロード」より提供しています。
MySQL Workbenchのバージョンもだいぶ上がってきたので、6.3.10(x64)と8.0.13(x64)で、日本語のxmlファイルが動作するか確認して見ました。
メインメニューのコミュニティ(C)の部分はエラーとなり動作しないが、大きな問題ではないと思います。

MySQL 8.0のクラッシュ、その後3

以前にも書いたのですが、MySQL 8.0のクラッシュ、その後、MySQL 8.0.11から8.0.12にアップグレード後、mysql_upgradeコマンドを実行し、正常に終了しました。
mysqldを再起動してテストしても、やはりクラッシュしてしまいます。

今回は、システムが使うデータベース(information_schema、mysql、performance_schema、sys)以外のデータベースを一旦削除し、MySQL 5.7から改めてインポートしたら、クラッシュの発生は無くなりました。
しかし、レスポンスが異常に遅い。

どの処理が遅いのか、スロークエリーログから改善策を探すことにしました。
my.iniの内容は、
slow_query_log=1
long_query_time=2

ひとつ目の遅いクエリーは、logcounterxモジュールのlogcounterx_logテーブルを参照している
SELECT MAX(acccnt), COUNT(recid) FROM hoge_logcounterx_log;
そこで、
PRIMARY KEY (recid)

PRIMARY KEY (recid),
KEY acccnt (acccnt)

ふたつ目の遅いクエリーは、analyzer for XCモジュールのanalyzer_dataテーブルを参照している
SELECT DISTINCT d.mods, COUNT(d.mods) cnt, m.dirname FROM hoge_analyzer_data d,hoge_modules m WHERE d.analysis = 1 AND m.dirname IN ( ‘xpress’,’pico’,’d3forum’,’hypconf’,’search’,’ccenter’,’zen-cart-menu’,’sitemap’,’myalbum’,’stdCache’,’NWiki-menu’,’d3downloads’,’d3pipes’,’links’,’xoops-menu’ ) AND d.analysis = 1 AND d.date > 20000101 AND d.mods != ‘index’ AND d.mods = m.name GROUP BY d.mods, m.dirname ORDER BY cnt DESC;
そこで
PRIMARY KEY (time,ip,mods),
KEY date (date),
KEY ip (ip)

PRIMARY KEY (time,ip,mods),
KEY date (date),
KEY ip (ip),
KEY mods (mods),
KEY analysis (analysis)

以下のクエリーでインデックスを追加出来ます。
ALTER TABLE プリフィクス_logcounterx_log ADD KEY acccnt (acccnt);
ALTER TABLE プリフィクス_analyzer_data ADD KEY mods (mods);
ALTER TABLE プリフィクス_analyzer_data ADD KEY analysis (analysis);
※2018/10/15追記

いずれもインデックスを追加することで、劇的にレスポンスが改善されましたが、まだMySQL 5.7の2~3倍の処理時間が掛かっています。

しかし、以前のクラッシュの原因については不明です。
推測ですが、データベースを作成した際に不具合が紛れ込んだのかも知れません。

試しに再び、MySQL 8.0での運用をしばらく続けようと思います。

PHP7対応のまとめ

以前に投稿したxpress ブログのPHP7対応の記事を資料室にまとめて見ました。

※リンクをクリックするとブラウザの新しいウインドウが開きます。
xpress ブログ記事へのリンク、
Analyzer for xcの改造
Analyzer for XC Ver 0.51のPHP7対応
Analyzer for XC Ver 0.51のPHP7対応その2

logcounterx Ver 2.74のUTF-8、MySQL、PHP7対応

myx_backup Ver 1.10のPHP7対応

PHP7とXOOPS Cube環境下でのPHPエラーメッセージ

zen-cart Ver1.5.1-jpのPHP7対応での変更点

資料室の記事へのリンク
Analyzer for XC Ver 0.51のPHP7対応などまとめ

logcounterx Ver 2.74のUTF-8、MySQL、PHP7対応などまとめ

myx_backup Ver 1.10のPHP7対応まとめ

PHP7とXOOPS Cube環境下でのPHPエラーメッセージ

zen-cart Ver1.5.1-jpのPHP7対応での変更点

MySQL 8.0のクラッシュ、その後2

MySQL 8.0のクラッシュ、その後、MySQL 8.0.11から8.0.12にアップグレード後、mysql_upgradeコマンドを実行し、正常に終了しました。
mysqldを再起動してテストしても、やはりクラッシュします。

MyISAMとInnoDBの両方のデータベースエンジンで、クラッシュが発生します。
作成したばかりのデータベースで、「SHOW TABLE STATUS FROM hogehoge」のクエリーでクラッシュが発生します。
やはり、以前と同じで、
[ERROR] [MY-000000] [InnoDB] InnoDB: Assertion failure: row0sel.cc:4603
とのエラーログが出力されて、mysqldが落ちてしまいます。

ほかにもクエリーの応答時間が、MySQL 5.7と較べて「激遅」なのも問題です。

MySQL 8.0のバージョンアップで改善することを期待していましたが、改善していません。

MySQL 8.0のクラッシュ、その後

MySQL 8.0のクラッシュ、その後、MySQL 8.0インストール初期のmy.ini(my.cnf)を使って、mysqldを起動してテストしても、やはりクラッシュします。

MyISAMとInnoDBの両方のデータベースエンジンで、クラッシュが発生します。
作成したばかりのデータベースで、「SHOW TABLE STATUS FROM hogehoge」のコマンドでクラッシュが発生します。
MyISAMのデータベースを選択した場合でも、
[ERROR] [MY-012856] [InnoDB] InnoDB: MySQL is trying to perform a consistent read but the read view is not assigned!
[ERROR] [MY-000000] [InnoDB] InnoDB: Assertion failure: row0sel.cc:4603
とのログが出力されて、mysqldが落ちてしまいます。

MySQLのバグリポートに「Bug #90694 Server crashes」という同様の現象が報告されているが、解決策は不明です。

MySQL 8.0ではシステム関連テーブルがInnoDBになっているので、MySQLのシステムに近いレベルで、エラーが発生している様に思えます。
MySQL 8.0の次のバージョンで改善することを期待したいと思います。

※2018/07/04バグリポートについて追記

MySQLの運用を8.0から5.7に戻した

ここ一ヶ月程MySQL8.0で運用していましたが、問題がありMySQL5.7に戻しました。

問題点
1.MyISAMテーブルのクラッシュにより、MySQLのサービス(mysqld自体)が落ちる。
これが最大の問題で、長年MySQLを運用しているが初めての経験です。
MySQLの起動パラメーターの問題なのかは判りません。

2.パフォーマンス(レスポンス)の低下。
レスポンス比較(秒)の表
レスポンス比較(秒)の表
上の表は、XOOPS Cubeに設置してある「db response checker」のデータを簡単に集計した結果です。
MySQL8.0での運用だと明らかにWebの応答が遅く感じます。

あくまでも、テストした非力なサーバ環境での話です。
テスト環境
O S:Windows Server 2008R2 x64
メモリ:2GB
HDD:1TB(普通のSATA HDD)
Webサーバ:IIS7.5
PHP:7.0
Webアプリ:XOOPS Cube
※メモリが少なすぎますね。

IPTables log analyzerをulogd2.xで使う

IPTables log analyzerをulogd2.xで使える様に、いつもの「ちょとだけ改造」をして見ました。

おもな変更点は、
1.PHP7.0への対応で、mysql拡張からmysqli拡張へ、廃止された関数の書き換え
2.ulogd2.xでは、IPアドレスの格納形式がlong型からIPv6対応のバイナリ型となったことへの対応

DNSのキャッシュテーブルを参照できない時の画面
DNSのキャッシュテーブルを参照できない時の画面

DNSのキャッシュテーブルを参照できている時の画面
DNSのキャッシュテーブルを参照できている時の画面

サブネットを指定してフィルタリングをした時の画面
サブネットを指定してフィルタリングをした時の画面

参考サイト
[Linux]ファイルの圧縮、解凍方法
Debian 9(Stretch)にPostgreSQL 9.6をapt-getでインストールし、外部アクセスを許可する
postgreSQLにコマンドラインからSQLファイルを実行
18.2.5. vsftpd 設定オプション
[ulogd] seems something wrong with mysql-ulogd2.sql
【PHP】関数 mysql_… を mysqli_… へ書き換える。
MySQL IPアドレスをlong型で記録する方法
ip2long
long2ip
Net_IPv4 – PEARマニュアル
■[MySQL][メモ]MySQLでIPアドレスを記録する方法
MySQLの1つのカラムでIPv4、IPv6両方のIPアドレスを格納する方法を考える
mysqlからmysqliへ移行変換
PHPのip2longとMySQLのINET_ATON
iptablesログ解析(IPTables log analyzer) (最終更新日:2010/02/16)
Raspberry Piでcrondは動いているのにcron.hourlyが動かない?
Debian 6.0 (squeeze) での、cronのログ有効化
run-partsが認識するファイル名ではまった
/etc/crontabと/etc/cron.d設定ファイルの書き方
IPアドレスが指定したIPアドレス範囲の中にあるかチェック
DBでバイナリ型にSELECT文実行
IPv6アドレスを完全表記(省略されていない表記)に変換するPHPコード
PHPでIPアドレス+ネットマスクに適合するかチェック

Raspberry Pi 3 のルーターにcactiを導入

Raspberry Pi 3 のルーターに、ようやくcactiを導入出来ました。

今回、導入する際に引っかかったのは、以下の3箇所です。
1.cacti用DBを作成する際にインデックス長制限
2.SNMPへのアクセス制限
3.直接は関係無いがMIBを人に判り易く表示するプログラムでエラーが発生

Raspberry Pi 3 にcactiを導入した画面
Raspberry Pi 3 にcactiを導入した画面

参考サイト
Ubuntu 14.04, Ubuntu 16.04上のsnmpwalk,snmptranslateでエラーが出力される
SNMPの設定
Ubuntu Server 16.04.2 LTSでSNMPを使えるようにする話
[鯖缶] SNMP(3) NET-SNMP のインストール


 

Powered by XOOPS Cube 2.2 © 2001-2016 XOOPS Cube Project Distributed by XOOPS Cube 2.2 Distribution Team.