カテゴリー
Database PHP Web

CPI レンタルサーバーでPHP/PDO MySql接続エラー

CPIレンタルサーバーにWebシステムを構築していてはまってしまった件なのですが、PHP で PDO を使って MySql へ接続すると以下のエラーが。。。

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

ローカルのサーバーでは出ていなかったので、Unixソケットも調べたが /tmp/mysql.sock で問題なし。

原因は、host=localhost で接続していたためでした。’localhost’ を ‘127.0.0.1’ に変更したら接続ができました。

カテゴリー
Windows 雑記

Windows NT System and Kernel がポート80を使用している?

Windows Server 2012 にXAMPP をインストールして Apache と MySQL を使用したかったのですが、Apache が起動できなかった。
[Apache] Problem detected!
[Apache] Port 80 in use by “Unable to open process” with PID 4!
[Apache] Apache WILL NOT start without the configured ports free!
[Apache] You need to uninstall/disable/reconfigure the blocking application
[Apache] or reconfigure Apache and the Control Panel to listen on a different port

PID 4がポート80を使用しているということなので、タスク マネージャで調べてみると PID 4 は NT System & Kernel でした。

しかし、IISもインストールしていなし、このプロセスを止めるわけにはいかなそう。

サービス一覧をみてIIS関連のサービスや他の起動中サービスを眺めていたところ “SQL Server Reporting Services” が気にかかり、ためしに停止したらポート80が未使用になりました。

カテゴリー
Asterisk IP-PBX

Asterisk ログにタイムスタンプを表示

Asterisk CLIで接続して表示されるログには、デフォルトで日時がないのですが、オプションで表示することができます。

1) CLI起動時に指定

# /usr/sbin/asterisk -rTvvvvvv

2) asterisk.conf で指定

asterisk.conf 
...
[options]
...
timestamp = yes  ; 起動時の -T と同じ
...

結果

# /usr/sbin/asterisk -rvvvvvT
[Dec  1 12:14:10] Asterisk 13.6.0, Copyright (C) 1999 - 2014, Digium, Inc. and others.
[Dec  1 12:14:10] Created by Mark Spencer 
[Dec  1 12:14:10] Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
[Dec  1 12:14:10] This is free software, with components licensed under the GNU General Public
[Dec  1 12:14:10] License version 2 and other licenses; you are welcome to redistribute it under
[Dec  1 12:14:10] certain conditions. Type 'core show license' for details.
[Dec  1 12:14:10] =========================================================================
[Dec  1 12:14:10] Connected to Asterisk 13.6.0 currently running on localhost (pid = 49788)
... 省略 ...
[Dec  1 12:19:14]     -- Executing [201@default:2] Playback("SIP/301-00000001", "demo-echotest") in new stack
[Dec  1 12:19:14]     --  Playing 'demo-echotest.gsm' (language 'ja')              
... 省略 ...
localhost*CLI> 
カテゴリー
Asterisk IP-PBX

Asterisk CLI プロンプトの変更

Asterisk コンソールのプロンプトはデフォルトでは、

hostname*CLI> 

ASTERISK_PROMPT 環境変数にフォーマットをセットすることで変更できます。

例)
export ASTERISK_PROMPT="[%d %t]%H*> "

上記の例のように日時とホスト名を指定すると、

[2015-12-01 12:03:12]hostname*>

参考サイト:
https://pbxinaflash.com/community/index.php?threads/asterisk-cli-date-time-in-logs.7885/

カテゴリー
Database

AccessとMySQL(UTF-8)をODBC接続

Access を MySql サーバーのフロントエンドにしてシステム開発することになった。PHPで構築したシステムを流用するので、MySqlのデータベースはエンコーディング UTF-8 で構成したい。

ネットで検索するとMySql ODBC と MySql のエンコード設定に関していろいろな情報があり、これはと思うものを試すうちに期待通りに動作した方法を紹介します。

サーバー側設定

1. MySQL Server の my.cnf の設定

characterset が UTF-8 でサーバーを構成。

[mysqld]
... 一部省略 ...
# default encoding
character-set-server=utf8
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

2. mysql コンソールから show variables の結果
MySQL サーバーを再起動して、mysql コンソールで接続。

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

characterset が UTF-8 になっているのを確認

3. テーブル作成
テーブルは DEFAULT CHARSET=utf8 で作成する。

CREATE TABLE Bar (
...
} ENGINE=InnoDB DEFAULT CHARSET=utf8;

4. ファイアウォールの設定
TCP ポート3306 へのアクセスを許可する設定に変更します。

クライアント側設定

1. MySQL Connector/ODBC をダウンロード
https://dev.mysql.com/downloads/connector/odbc/ から Connector/ODBC 5.3.4 の 「Windows (x86, 32-bit), MSI Installer」または、「Windows (x86, 64-bit), MSI Installer」をダウンロードして、インストーラーを起動してインストール。

※ Windows 8/8.1 では Microsoft Visual C++ 2010 Redistributable Package を事前にインストールしておかないと MySQL Connector/ODBCのインストールが失敗してしまうので、以下からダウンロードしてインストールしておきます。

32ビット版:https://www.microsoft.com/en-gb/download/confirmation.aspx?id=5555
64ビット版:https://www.microsoft.com/en-us/download/confirmation.aspx?id=14632

2. ODBC DSN の作成
Access から接続するために DSN を作成します。

-「コントロール パネル\システムとセキュリティ\管理ツール」から「データソース(ODBC)」をダブルクリック
– 「データ ソースの新規作成」で「MySQL ODBC 5.3 Unicode Driver」を選択
mysql-odbc-driver
– Data Source Name, TCP/IP Server, User, Password, Database を入力
mysql-odbc-conn
(Character Set と Initial Statement は空のまま、何も指定していません。)

3. Access からリンクテーブル
Access からリンクテーブルを上記のDSNを使って作成して、データを表示、編集し、また同テーブルのデータをPHPで作成したプログラムで操作しましたが、双方で問題なし。