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

メインメニュー

ログイン


ユーザー名:


パスワード:





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

オンライン状況

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

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

もっと...

アーカイブ

カテゴリー

アクセスカウンタ

今日 : 7878
昨日 : 199199199
総計 : 251509251509251509251509251509251509

カレンダー

2018年6月
« 5月    
 12
3456789
10111213141516
17181920212223
24252627282930

xpress ブログ » » DATABASE

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

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 のインストール

MySQL 8.0.11(GA)のインストールをテスト

MySQL 8.0が一般公開版としてリリースされていたので、MySQL 8.0.11(GA)のインストールをテストして見ました。

MySQL 8.0は開発者向け版からテストしていたので、最初はサーバ(Windows)にインストールされている「MySQL Installer – Community」から、Add(追加)でインストールを試みたところ、プログラム部分は正常にインストールされるが、Dataフォルダに初期データが作られずに途中停止する状態となり先に進めません。

次にZIP版をテストしたが、データの初期化までは出来るがサービスを起動出来ません。
ZIP版の場合は、my.iniのパラメーターや初期設定のコマンドが変更されている可能性があるではと思っています。

結局、「mysql-installer-community-8.0.11.0.msi」を使ったインストールだと問題無く、MySQL 8.0.11(GA)のインストールが完了ます。
はじめからインストーラを使えば良かったと後悔しています。
これから実データを入れて、色々と試したいと思います。

参考サイト
Download MySQL Community Server

Accessで家計簿をつけ始めた

昔、家計簿を手書きしていたけど、いつの間にかやめてしまいましたが、昨年夏頃からエクセルを使って家計簿をつけ始め、エクセルのデータをAccessにデータを移行して見ました。

使ったのはフリーで配布されている「Accessの入門用の例題」で、テーブルはたった二つで非常にシンプルです。
大体はレシート単位でデータ入力するだけで、費目の月単位での推移をグラフに出来たりします。

今回、表示や印刷時に「年度、月度」を「年、月」に変更、また、残高更新のボタンを押すと「データ型の変換エラー」となるので、モジュール1を
— ここから–
‘累計残高をグローバル変数で宣言
Dim RuiZan As Long
Public Function ZanIni()
RuiZan = 0
End Function
Public Function ZanDaka(A As Long, B As Long) As Long
RuiZan = RuiZan + Nz(A) – Nz(B)
ZanDaka = RuiZan
End Function
— ここまで —

— ここから–
‘累計残高をグローバル変数で宣言
Dim RuiZan
Public Function ZanINI()
RuiZan = 0
End Function
Public Function ZanDaka(A, B)
RuiZan = RuiZan + Nz(A) – Nz(B)
ZanDaka = RuiZan
End Function
— ここまで —
に変更しました。

家計簿のテーブル画面
家計簿のテーブル画面

家計簿のフォーム画面
家計簿のフォーム画面

ガソリン代をグラフ表示した画面
家ガソリン代をグラフ表示した画面

参考サイト
Access活用講座

CakePHP関連のリンク(一部PHP関連を含む)

CakePHPをいじった時に参考にさせて頂いたサイトの情報を投稿するのを忘れていたので、リンクを投稿しました。
なお、リンク集(links)にもデータを追加しました。

参考にさせて頂いたサイト
CakePHP Installation
CakePHP インストール
CakePHPフレームワークによる快速WEB開発
【CakePHP入門】bakeの使い方
cakePHPインストールでハマった話。(intl.so)
CakePHP3でのタイムゾーンの設定
CaKePHP3 DBタイムゾーン設定
CakePHP3でのタイムゾーンの設定
日付と時刻 – CakePHP
CakePHP3での日時フォーマットとタイムゾーン対応について
DateTime クラスのまとめメモ
CakePHP3でUpload Plugin 3.0を使ってファイルがアップロードできない
CakePHP 画像や各種ファイルのアップロードフォームを作る
画像や様々なファイルをDBに格納
CakePHP / Tips
composerでのcakePHPインストール
cakePHP2でコマンド実行
cakePHP selectフォームのdisabled
cakePHP 日本語のヴァリデーション
cakePHP ビューでの日付の整形
cakePHP TOPページカスタマイズ
cakePHP 確認画面
cakePHP modelの再定義
cakePHP redirect
cakePHPで共通変数の定義
cakePHP アソシエーション
cakePHP モデル等の複数形に注意 information
cakePHP ロールバック
cakePHP conditionの指定方法
cakePHP formで複数要素を配列として利用
cakePHPで共通変数の定義
cakePHP ファイルアップロード
cakePHP 動的にタイトルを変更
Upload Plugin 3.0
For documentation (Introduction Upload Plugin 3.0,..etc)
Uploading files and images with CakePHP 3 or a tutorial on using the 3.x version.
Upload Plugin 2.0 for CakePHP 2.x documentation.
CakePHP3でファイルのアップロード処理を自作・解説付き・その1
CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2
CakePHP3のForm Helperの使い方のまとめ
CakePHP3でDocumentRootやtmp、webroot、logsなどのフォルダへのパスの定数
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
2017年版!最新のPHPフレームワーク比較と選ぶ基準
Windows 10 + IIS + PHP 7+CakePHP 3+MSSQLを、サブディレクトリに入れて使う
CakePHP を IIS7.5 で動かす
xoopsCube + CakePHP
CubeCakeを使う場合に注意する点 その1
Cakecon xoops cubeなのにcake-phpを使う
PHPでファイルアップロードを実装する方法
PHP製ファイル管理ツール『File Thingie』
PHP Labo – フリーPHPスクリプト配布サイト

なぜか、MySQL 8.0.4でインストーラーが途中で止まる

なぜか、MySQL 8.0.4でインストーラーが途中で止まってしまいます。
しかし、サービスを起動すると普通に起動できるが、以下の様なエラーとなり、rootでログインできない。

ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded: ?w’e?3?e?????W?…?[???a?c?A?c?e?U?1?n?B

なぜだろうと思い調べたら、以下の様な記述を見つけたのですが、今ひとつ判りません。
6.5.1.3 Caching SHA-2 Pluggable Authentication

取り敢えず、my.iniの最後尾に
default_authentication_plugin=mysql_native_password
上記を追加して、MySQLを再起動。
コマンドプロンプトで、「mysqladmin -u root password バスワード –default-auth=mysql_native_password」。
127.0.0.1のホストとrootでmysql_native_passwordを使用するに設定して、ローカルからも普通にログイン出来る様にしました。
ただし、このやり方が正しいのかは判りません。

その後、数時間してグーグルで検索すると、
MySQL 8.0.4におけるデフォルト認証形式の変更

試しに、インストーラーから再度コンフィギュレーションするとMySQLサーバにログイン出来ない。

MySQLサーバにログイン出来ない時のインストーラー画面
MySQLサーバにログイン出来ない時のインストーラー画面

やはり、普通のMySQLクライアントだと×になる様ですね。
インストーラーが「オバカさん」なのか、私の設定が悪いのか不明です。

CakePHP 3.5を触って見た

初めて、CakePHP 3.5を触って見ました。
最初はインストールとチュートリアルに従って動作を確認しました。

その後、色々とグーグルさんのお世話になり、bake(スクリプト)があるのを知り、早速試して見ました。
このbakeは、「面白い機能です。」、データベースのテーブルの入力・表示(リスト、個別)・編集・削除がブラウザから行える様に、自動的にCakePHP用のPHP文を作ってくれます。

使っているとMS-DOS時代のdBASE III PLUSを使っているかの様な感覚になりました。
今後、画面のカスタマイズやデータのコントロールなどについて、少しずつ勉強しようと思います。

CakePHPにアクセスした時の画像
CakePHPにアクセスした時の画像

ワンクリックで、MySQLで加工してデータをSQL Serverに送る

ワンクリックで、MySQLで加工してデータをSQL Serverに送れる様にして見ました。

1. 以前の記事でMySQLからSQL Serverへデータを流す際に、一部手作業が残っていたので、これを完全自動化する為に、以前から利用していたMySQL用SQL文とSQL Server用SQL文を利用し、このSQL文にデータをCVSファイルとしてエクスポート・インポートする部分を追加しました。
2. このSQL文をPHPで読み込み、それぞれのサーバでSQL文を実行する。
3. 一連の作業を実行するバッチファイルを作成して完全自動化しました。

具体的には、MySQLサーバのXOOPS Cube上のxpress(素のWordpressをプラグインとして動作させる)モジュールのデータを、SQL Server上のXOOPS 2.6.0のpublisherモジュールで利用できる様に加工し、データをエクスポート、このデータをSQL Serverにインポートする。

参照・更新する主なテーブル
(元となるデータはMySQLで、SQL Serverの別のアプリケーションで再利用する)
参照・更新する主なテーブル

参考にさせて頂いたサイトのプログラムの一部をコピペさせて頂きました。
また、◎を付けたサイトの情報をプログラミングのヒントにさせて頂きました。
情報を提供して下さった方々に感謝します。..m(_ _)m

参照サイト
SQLファイルの読み込み
プログラミング言語PHPで、引数に指定したファイルから1行読み込む関数 fgets()を紹介します。
SQLのコマンドをファイルから読み込み実行する
PHPからSQL Serverへの正しい接続方法
SQLServerのテーブルにCSVファイルをインポートする方法
PDOでMySQLに外部SQLファイルを流す
データの一括インポートと一括エクスポート (SQL Server)
SQL Serverで大量レコードをインサートする方法
[PHP][MySQL] データベースをダンプ(エクスポート)する
PHPとMySQLのSELECT文でデータ取得(PDO)
[PHP] DBからCSVを生成してダウンロードする
MySQLで改行やカンマを置換する – 個人の技術メモ – 気ままNote
MySQLテーブルをそのままコピーする
MySQLにdatetime型で保存したデータをUNIX TIMEで取り出すUNIX_TIMESTAMP関数
同じ行のあるフィールドのデータを別のフィールドへコピーしたい
テーブルを別のデータベース内のテーブルにコピペする方法(MySQL)
全データの削除
MYSQLのexport時に文字化けします。
DBOnlineではMySQLやSQLiteなど各種データベースのインストール方法や設定に関する解説を行っています
◆インポート/エクスポート ウィザード による単純なデータ転送 – SQLServer
PHP内からの.sqlファイルの読み込み

MySQLからSQL Serverへのデータ移行

XOOPS2.6.0をSQL Serverで稼働させる為に、MySQLからSQL Serverへのデータ移行を行いました。
この時、SQL Server Management Studio (SSMS)を使ってデータ移行を行おうとしましたが、データインポートの途中でエラーとなり、上手く行きませんでした。

MySQLのテーブルは認識出来ている画面
MySQLのテーブルは認識出来ている画面

途中のエラー画面
途中のエラー画面

そこで、SSMSのリンクサーバを設定してテーブルのデータを表示して見ると問題無く表示されます。

リンクサーバへの問い合わせ画面
リンクサーバへの問い合わせ画面

仕方なく、MySQLのテーブルとデータをSQL文形式でエクスポートし、このSQL文をテキストエディタを使って、以下の様に編集してSQL Serverへ流し込みました。

MySQLよりエクスポートしたSQL文
CREATE TABLE IF NOT EXISTS x174_avatars_avatar (
avatar_id int(10) unsigned NOT NULL AUTO_INCREMENT,
avatar_file varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
avatar_name varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
avatar_mimetype varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
avatar_created int(11) NOT NULL DEFAULT ‘0’,
avatar_display tinyint(1) NOT NULL DEFAULT ‘0’,
avatar_weight smallint(5) unsigned NOT NULL DEFAULT ‘0’,
avatar_type char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
PRIMARY KEY (avatar_id),
KEY avatar_type (avatar_type,avatar_display)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SQL Serverへ流し込むSQL文
CREATE TABLE “x174_avatars_avatar” (
“avatar_id” INT NOT NULL IDENTITY(1,1),
“avatar_file” varchar(30) NOT NULL DEFAULT ”,
“avatar_name” varchar(100) NOT NULL DEFAULT ”,
“avatar_mimetype” varchar(30) NOT NULL DEFAULT ”,
“avatar_created” INT NOT NULL DEFAULT ‘0’,
“avatar_display” TINYINT NOT NULL DEFAULT ‘0’,
“avatar_weight” SMALLINT NOT NULL DEFAULT ‘0’,
“avatar_type” char(1) NOT NULL DEFAULT ”,
PRIMARY KEY (“avatar_id”)
);
CREATE INDEX “avatar_type” ON “x174_avatars_avatar”(“avatar_type”,”avatar_display”);

ポイントは、AUTO_INCREMENTをIDENTITY(1,1)に、PRIMARY KEY以外のKEYをCREATE INDEXに置き換える、少々面倒でしたが色々と勉強になりました。

参考サイト
SQL ServerからMySQLのデータベースにアクセスしてみる。
SQL ServerからMySQLへリンクサーバを設定する


 

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