web-webap-db構成のシステムが既にあります。
構成は下記のとおりです
・webサーバ CentOS7.2 nginxでproxy
・webapサーバ CentOS7.2 php5.6.24 apache2.4.6
・dbサーバ 2台 CentOS7.2 mysql5.6.32 レプリケーション構成
上記構成でwebapにmysqlnd_msを導入し、dbへのアクセスをwriteはmaster、readはslaveサーバへ振り分けを考えています。
上記実現のため下記を実施しました。
・mysqlndのインストール
yum install php-pecl-mysqlnd-ms.x86_64 php-pecl-mysqlnd-ms-devel.x86_64
・/etc/php.d/50-mysqlnd_ms.iniの編集
extension=mysqlnd_ms.so mysqlnd_ms.enable = 1 mysqlnd_ms.force_config_usage = 1 mysqlnd_ms.config_file = "/etc/mysqlnd_ms.json" ll be ignored. mysqlnd_ms.disable_rw_split = 1
・/etc/mysqlnd_ms.jsonの作成
{ "primary": { "master": { "master_1": { "host": "master-db", "port": "3306" } }, "slave": { } }, "standby": { "master": { "master_1": { "host": "slave-db", "port": "3306" } }, "slave": { } } }
上記のとおり設定し、画面を表示させると下記のエラーが表示されます。
※一部ファイル名を変換しています
httpd: PHP Warning: mysqli_connect(): (mysqlnd_ms) Exclusive usage of configuration enforced but did not find the correct INI file section (master-db) in /var/www/html/XXXX.php on line 200 httpd: PHP Warning: mysqli_connect(): (HY000/2000): (mysqlnd_ms) Exclusive usage of configuration enforced but did not find the correct INI file section in /var/www/html/XXXX.php on line 200 httpd: PHP Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /var/www/html/XXXX.php on line 120
/var/www/html/XXXX.phpの200行目と120行目は下記のとおりです。
200行目 $this->database = mysqli_connect($dbhost,$configOptions['db_user_name'],$configOptions['db_password'],isset($configOptions['db_name'])?$configOptions['db_name']:'',$dbport); 120行目 $result = $suppress?@mysqli_query($this->database,$sql):mysqli_query($this->database,$sql);
XXXX.phpファイル内でパラメータが設定しているのでそれが/etc/mysqlnd_ms.jsonに足りないと考え/etc/mysqlnd_ms.jsonを下記のように修正しました。
・/etc/mysqlnd_ms.json
{ "primary": { "master": { "master_1": { "host": "master-db", "db": "dbname", "password": "pass", "user": "dbuser", "port": "3306" } }, "slave": { } }, "standby": { "master": { "master_1": { "host": "slave-db", "db": "dbname", "password": "pass", "user": "dbuser", "port": "3306" } }, "slave": { } } }
しかし、エラーメッセージは変わらずです。
なるべく現在のアプリケーションXXXX.phpは変更したくないのですが、上記エラーの解消方法をご教示ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/04 09:08