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

メインメニュー

ログイン


ユーザー名:


パスワード:





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

オンライン状況

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

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

もっと...

アーカイブ

カテゴリー

アクセスカウンタ

今日 : 5454
昨日 : 9898
総計 : 238498238498238498238498238498238498

カレンダー

2018年2月
« 1月    
 123
45678910
11121314151617
18192021222324
25262728  

xpress ブログ » » DATABASE

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

なぜか、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へリンクサーバを設定する

publisherのメンテナンス用SQL文を作って見た

XOOPS 2.6.0(本家版)のテストで、xpressのデータをpublisherに流し込むのに、Excelを利用した手作業が発生するので何とかならないかと思い、publisherのメンテナンス用SQL文を作って見ました。

publisherのitems、categoriesと2つの作業用テーブルの合計4つを用意して、XOOPSのコメントテーブルとxpressの各テーブルから抽出、集計してpublisher_items、publisher_categoriesのテーブルを完成させることをSQL文だけ行える様にしました。

それでも、MySQLからSQL Serverへのデータの流し込みには、テキストエディタでの置き換え処理が必要ですが、大幅な時間短縮となります。

MySQL(InnoDB)、utf8mb4環境で、indexの文字数制限

XOOPS 2.6.0をテストしていて、「Index column size too large. The maximum column size is 767 bytes.」とMySQLに叱られるので、MySQL 5.6.xだったので、取り敢えずindexにする文字数を191文字に指定して切り抜けました。
問題は、インデックスに指定したカラムの文字数が191文字を超えた場合、インデックスだけからはデータを特定出来ません。

どうも、MySQL 5.7.9以降なら、デフォルト設定でOK。
MySQL 5.6だとmy.ini(my.cnf)で、
innodb_large_prefix = ON
innodb_file_per_table
innodb_file_format = Barracuda
として、テーブル作成時にROW_FORMAT=DYNAMICを指定する。

参考サイト
MySQL(InnoDB) で charset を utf8mb4 にする注意点の現在
MySQL(InnoDB) で “Index column size too large. The maximum column size is 767 bytes.” いわれるときの対策

MySQL5.6と5.7の設定値

MySQL5.7を使っていて、5.6に較べてディスクアクセスに異常に時間が掛かる現象が見られ、MySQLでメインで使うバージョンを5.6系に変更していました。

そこで、MySQL5.6と5.7の設定値を比較した記事等を参考にシステム変数の一覧表示を行うSHOW VARIABLESの結果を比較して、MySQL5.6では、sync_binlogが0になっているが、5.7では、1になっている。
まさに、ログのディスクへの書き込み確認をその都度行っている様なので、MySQL5.6と同じ設定にして見ると、さほど気にならない程度になりました。

MySQLでメインで使うバージョンを5.7系に変更しました。

今回比較したのはMySQL5.6.37と5.7.19ですが、MySQL8.0.2でもsync_binlogが1になっていました。
※2017-08-20 一部加筆修正

Zen-Cart 1.5.6-alphaをテスト

Zen-Cart 1.5.6-alphaが公開されていたので、テストして見ました。
この版は、Zen-Cartの最新版1.5.5eの後継版だと思います。
以前から1.6.0もテストしていたのですが、まさか1.5.6が出てくるとは思いませんでした。

参考サイト
GitHub zencart/zencart

MySQL 8.0.2 dmrを試して

インストーラ版MySQL 8.0.2 dmrを試して見たが、アップグレード時にMySQL 8.0.1 dmrと同じで、サービスを起動できない。

ZIP版MySQL 8.0.2 dmrも試して見たら、サービスが正常に起動します。
どうも、Dataディレクトリの初期化から行うと問題ない様ですので、当然アップグレードは×です。

試しに、インストーラ版MySQL 8.0.2 dmrの新規インストールの前に、MySQL 8.0.0 dmrをアンインストールする時にDataディレクトリを削除してから新規インストールすると、サービスは正常に起動します。

環境は、Windows Server 2008R2

SQL Server 2017 on Ubuntu 16.04

SQL Server 2017 Community Technology Preview 2.0 をHyper-V上のUbuntu 16.04にインストールして見ました。

最初メモリ割当が512MBしか無かったので、「ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R).」とのエラーとなり、メモリ割当を3328MBにして再インストール、問題無く稼働している様です。

SQL Server 2008のManagement StudioとHeidiSQLから接続して、システムテーブル類を確認して見ました。

ubuntu 16.04にSQL Serverをインストールした時の画面
ubuntu 16.04にSQL Serverをインストールした時の画面

参考サイト
SQL Server 2017 Community Technology Preview 2.0 now available
Install SQL Server on Ubuntu


 

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