SQLServer→MySQLに、改行を含むデータを移行する


SQLServerからMySQLに、改行を含むデータを移行するために、SQLServerからCSVファイルを吐いたのだが、これが意図したようにMySQLに読み込まれない。

名称未設定-2

1つのフィールドに入るべき内容が、データ内の改行コード(CrLf)のせいで、CSV上で改行されてしまっている。
このファイルを読み込んだら、MySQLには1行毎に読み込まれて、意図しないデータになってしまった。

名称未設定-1

いろいろ解決法があるが、もっともシンプルな方法は、CSVを吐き出すときにセルをダブルクォーテーションで囲む(テキスト装飾子をつける)ことだ。

SQL Serverのログファイルをクリアするコマンド


backup log DBNAME with no_log
go
DBCC SHRINKFILE(DBNAME_Log ,1)
go

SQLServerを使い続けるとトランザクションログがいっぱいになるので時々コマンドで消してやる。

phpmyadminからインポートできない大きなCSVをコマンドラインでインポートする


mysql > load data local infile "/path/to.file.txt" into table `TBL_TABLENAME` fields terminated by ',';

予めFTPでサーバーにCSVファイルをアップロードしておいて、MySQLにコンソールからログインして上記コマンドを叩きます。CSVの1行目にフィールド名が入っているとそれもデータとして読み込まれてしまうので注意。

mkdirでフォルダを作成するとNo such file or directoryエラーが発生する


PHPでサーバー上にフォルダを作成する時、No such file or directoryエラーが発生。
今から作ろうとしているフォルダに対して「そんなフォルダ無いよ」と言われも。

原因は、mkdir()関数に渡す引数の不足。
2階層以上の深さを一度に作成するときには、第3引数にTRUEを付ける。

mkdir('./aaa', 0777);

これはOK。aaaフォルダを作るだけなので第3引数は省略可能。

mkdir('./aaa/bbb', 0777);

これで上記エラー発生。aaaフォルダを作成し、更にその下にbbbを作ろうとしている。

mkdir('./aaa/bbb', 0777, TRUE);

これで正常に作成できました。

Thunderbirdでメールが勝手に消える件(解決)


メールクライアントを、15年近く使用したBecky!からMozilla Thunderbirdへ移行しました。

Becky!2のメールデータをCircle Beckyでエクスポートして、Thunderbird側でアドオン『MBoxImport』インポートします。
データ移行自体はエラーもなくすんなりいきましたが、Thunderbirdで見てみるとメールがほとんど移行出来ていません。
よく見ると、どうも古いメールが移行されていない模様。

解決方法

  1. 各フォルダを右クリック→プロパティをクリック
  2. フォルダのプロパティの「アカウント設定に従うのチェックを外す」「メッセージを自動削除しないをクリック」

 

名称未設定-1 名称未設定-2

WordPressで突然「データベース接続エラー」が発生


WordPressで突然「データベース接続エラー」が発生したときの対処法を自分メモ。
マルチサイト化して運用中のWPで、突然子サイトの1つだけエラー。
他のサイトは正常稼働していた。

原因はMySQLデータベース破損。

$ sudo mysqlcheck -u root -p wordpress_main --auto-repair

最後に

$ sudo service mysqld restart

Nginxのバーチャルドメインでエラー


Nginxのバーチャルドメインを設定していてエラーが発生したので、対処法を自分メモ。

/etc/nginx/conf.d/virtual.conf に下記を追記

server {
           listen   80;
           server_name domain1.com;
           access_log /home/demo/public_html/domain1.com/log/access.log;
           error_log /home/demo/public_html/domain1.com/log/error.log;
           location / {
                       root   /home/demo/public_html/domain1.com/public/;
                       index  index.html index.php;
                       }
           }

/etc/init.d/nginx configtest を実行

nginx you should increase server_names_hash_bucket_size 32

エラー発生..

/etc/nginx/nginx.conf のhttpディレクティブに下記を追記

<code>http {
    server_names_hash_bucket_size  64;
    ...
}

PHPExcelのXMLWriter.phpエラー


PHP Fatal Error: Class 'XMLWriter' not found in 
/***/Classes/PHPExcel/Shared/XMLWriter.php on line 44

PHPでエクセルファイルを生成するPHPExcelを使おうとして上記エラーが発生した時の対処法です。

# yum install php-xml

GMOクラウドVPSでphpMyAdminを使う


今度立ち上げる新サービス用に、GMOクラウドVPSを契約しました。
http://vps.gmocloud.com/

インストールパッケージでLAMPPパックを選択すると、すぐにWEBサービスが始められる環境が整っているのですが、phpMyAdminがありませんでした。まあ、別環境で開発してVPSにデプロイするだけなら不要ですが、今回はVPS上で開発も行うため、phpMyAdminも必須です。yum -y install phpmyadmin でインストールしました。

すんなりインストール成功し、別サーバーで稼働しているデータをインポート。動作確認です。
ところが、SELECT句を実行してみると、件数は表示されるものの、一覧は表示されません。
PHP上からSELECT句でテーブルを参照すると、ちゃんと表示されるので、インポートは正常に行われている模様。
おそらく、GMOクラウドVPSのMySQLバージョンが最新すぎて、yumで入るphpMyAdminがちょっと古めなので、そのへんに原因がありそう。

で、このへんを参考に最新のphpMyAdminを入れてみました。phpMyAdmin自体のインストールは成功しましたが、ワタシの環境でも「phpMyAdmin – Error The json extension is missing. Please check your PHP configuration.」エラーは発生。おそらくGMOクラウドVPSユーザーでLAMPパッケージを選択した人、はみんなここでエラーが出ると思います。yumからjsoncをインストールしました。

jsonc

 

GMOクラウドVPSで躓いたのはここくらいです。あとはフツーのLAMPですね。

 

 

 

自宅用にインターネットFAXのD-FAXを契約してみた


名称未設定-1

自宅でFAXを受け取る必要が出てきたのだが、今更FAX機を設置するのも嫌なので、インターネットFAXを契約してみた。

お客さんが自分のFAX番号にFAX送信すると、送信内容がメールで届く仕組みだ。文書はメールに画像ファイルとしてメールに添付されてくる。(TIFかPDF形式)

早速自分宛てに1通送信してみたが、普通にFAX受信した用紙をスキャナで取り込んだみたいなTIF画像が添付されてきた。

20140413_122324_203 (1)

 

これは使えるな。TIFで届くとスマホで閲覧するときに不便だから、PDF変換オプションは付けた。
これで自宅でのFAX受信環境は整った。大体このネット時代に、FAXで送りたいと言われること自体めったにないのだが、事情によりFAXでしか送れないお客さんのためにわざわざFAX機を置くのは避けたい。そんな時にD-FAXはいい。

D-FAX

桶狭間情報システム

© 2024 Copyright OKESYS. All rights reserverd.