Centos7 インストール mysql+keepalived 高可用性環境
ディレクトリ
mysqlデュアルホスト+keepalived高可用性環境の構築
I. 環境整備
1. ノード情報
<テーブル ノードIP ノード名 システム ソフトウェアとバージョン 192.168.51.187 ノード187 CentOS 7キープアライブ-1.3.5
mysql-5.7.24
192.168.51.226 ノード226 CentOS 72. バーチャルVIP
<テーブル バーチャルVIP 192.168.51.1703. 両ノードの初期化、共通ツールのインストール
yum install gcc gcc-c++ vim-enhanced glibc make unzip openssl openssl-devel openssh-server openssh-clients wget -y
II. mysqlのダウンロードとインストール
* 特定とマークされたものを除き、すべての手順は両ノードで行われ、両ノードにmysqlをインストールします。
1. ウェブサイトからダウンロード
リンク https://downloads.mysql.com/archives/community/
バージョン選択とダウンロード
2. mysqlが既にインストールされているか、システムに付属しているMariadbをアンインストールするか確認し、インストールされている場合は、インストールされているものを先にアンインストールします
[root@node187 ~]# rpm -qa | grep mysql
[root@node187 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@node187 ~]# yum -y remove mariadb-libs-5.5.64-1.el7.x86_64
3. インストーラーをサーバーに転送し、解凍します。
[root@node187 home]# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
Rename the mysql installation directory
[root@node187 home]# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
4. 新しいユーザーグループとユーザーの作成
[root@node187 home]# groupadd mysql
Disable mysql login
[root@node187 home]# useradd -s /sbin/nologin mysql
5. mysqlの下にdataディレクトリとlogディレクトリを新規に作成します。
[root@node187 home]# cd mysql
[root@node187 mysql]# mkdir data
[root@node187 mysql]# mkdir log
6. mysqlフォルダの所有者権限をmysqlユーザに変更する。
[root@node187 mysql]# chown -R mysql:mysql . /
7. データベースを初期化し、初期化パスワードを記憶させる。
[root@node187 mysql]# . /bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize
<イグ
8. 8. my.cnf 設定ファイルを作成し、以下の設定を追加します。
ノード1の設定ファイルを変更します
[root@node187 mysql]# vim /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
skip-name-resolve
port = 3306
basedir=/home/mysql
datadir=/home/mysql/data
socket=/home/mysql/mysql.sock
max_connections=1000
# The default character set used by the server is the 8-bit encoded latin1 character set
character-set-server=utf8
# The default storage engine to be used when creating new tables
default-storage-engine=INNODB
lower_case_table_names=1 # case-insensitive
max_allowed_packet=100M
# Enable ip binding
bind-address = 0.0.0.0
server-id = 1
log-bin = mysql-bin
# sync_binlog = 1
# binlog_checksum = none
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 1
[mysqld_safe]
log-error = /home/mysql/log/mysqld.log
pid-file=/home/mysql/data/mysqld.pid
# Specify the path of the socket communication file when the client connects to mysql
[client]
socket=/home/mysql/mysql.sock
default-character-set=utf8
ノード2の設定ファイルを変更する
[root@node226 mysql]# vim /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
skip-name-resolve
port = 3306
basedir=/home/mysql
datadir=/home/mysql/data
socket=/home/mysql/mysql.sock
max_connections=1000
# The default character set used by the server is the 8-bit encoded latin1 character set
character-set-server=utf8
# The default storage engine to be used when creating new tables
default-storage-engine=INNODB
lower_case_table_names=1 # case-insensitive
max_allowed_packet=100M
# Enable ip binding
bind-address = 0.0.0.0
server-id = 2
log-bin = mysql-bin
# sync_binlog = 1
# binlog_checksum = none
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 2
slave-skip-errors = all
[mysqld_safe]
log-error = /home/mysql/log/mysqld.log
pid-file=/home/mysql/data/mysqld.pid
# Specify the path of the socket communication file when the client connects to mysql
[client]
socket=/home/mysql/mysql.sock
default-character-set=utf8
9. ブートにmysqlを追加する
[root@node187 mysql]# cp . /support-files/mysql.server /etc/init.d/mysqld
mysqldの以下のコードセクションを修正します。
[root@node187 mysql]# vim /etc/init.d/mysqld
Modify the following
basedir=/home/mysql
datadir=/home/mysql/data
<イグ
起動の設定
[root@node187 mysql]# chkconfig --add mysqld
10. 環境変数の追加
[root@node187 mysql]# vim /etc/profile
Add the following
export PATH=$PATH:/home/mysql/bin
to make the profile take effect immediately
[root@node187 mysql]# source /etc/profile
11. サービスの開始
[root@node187 mysql]# service mysqld start
<イグ
12. 上記手順7の赤枠の初期パスワードでmysqlにログインします。
[root@node187 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
Other names may be trademarks of their respective owners.
Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
13. 必要に応じて、mysqlデータベースのrootユーザーのパスワードを変更します。この場合、パスワードはrootです。
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
データベース接続ツールを使ってデータベースに接続するためには、次の設定が必要です。
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
<イグ
接続を正しくテストして、データベースのインストールが完了しました
15. mysqlメインマスタの設定
configure node one mysql master マスターを設定します。
[root@node187 mysql]# systemctl stop mysqld
[root@node187 mysql]# systemctl start mysqld
Log in to mysql and create a synchronized user
[root@node187 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24-log MySQL Community Server (GPL)
mysql> grant replication slave,replication client on *. * to repl@'192.168.51.%' identified by 'root';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
#lock tables, view binlog node
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 622 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
Record mysql-bin.000001 and 622
configure node two mysql master マスターを設定します。
[root@node226 mysql]# systemctl stop mysqld
[root@node226 mysql]# systemctl start mysqld
Log in to mysql and create a synchronized user
[root@node226 data]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24-log MySQL Community Server (GPL)
mysql> grant replication slave,replication client on *. * to repl@'192.168.51.%' identified by 'root';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
#lock tables, view binlog node
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 622 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
Record mysql-bin.000001 and 622
16. 同期をオンにする
ノード1をオンにする
#Unlock
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='192.168.51.226',master_user='repl',master_password='root',master_log_file='mysql-bin.000001', master_log_pos=622;
Query OK, 0 rows affected, 2 warnings (0.08 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
#The following two Yeses indicate that the master and slave are up and running
mysql> show slave status \G;
<イグ
ノード2を開く
#Unlock
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='192.168.51.187',master_user='repl',master_password='root',master_log_file='mysql-bin.000001', master_log_pos=622;
Query OK, 0 rows affected, 2 warnings (0.07 sec)
mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
#The following two Yeses indicate that the master and slave are up and running
mysql> show slave status \G;
<イグ
17. テスト
この時点で、mysql のマスターとマスターの同期が達成され、両方のデータベースにテーブルを作成し、互いの同期を確認することができます。
ノード1にテーブルを作成する
ノード 2 のテーブルを表示
III. keepalivedのダウンロードとインストール
1. keepalivedの紹介
公式サイトのアドレスです。 https://www.keepalived.org/
インストール時の参考にしてください。 https://www.keepalived.org/doc/installing_keepalived.html
2. keepalivedのダウンロードとインストール(両ノードにkeepalivedをインストールします。)
[root@node187 ~]# yum install -y openssl-devel
[root@node187 ~]# cd /home
[root@node187 home]# wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
[root@node187 home]# tar -zvxf keepalived-1.3.5.tar.gz
[root@node187 home]# cd keepalived-1.3.5
[root@node187 keepalived-1.3.5]# . /configure --prefix=/usr/local/keepalived
[root@node187 keepalived-1.3.5]# make && make install
[root@node187 keepalived-1.3.5]# cp /usr/local/src/keepalived-1.3.5/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/
[root@node187 keepalived-1.3.5]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@node187 keepalived-1.3.5]# mkdir /etc/keepalived/
[root@node187 keepalived-1.3.5]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@node187 keepalived-1.3.5]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@node187 keepalived-1.3.5]# echo "/etc/init.d/keepalived start" >> /etc/rc.local
Change the PIDFile address, otherwise the startup will report an error
[root@node187 keepalived-1.3.5]#vi /lib/systemd/system/keepalived.service
[Unit]
Description=LVS and VRRP High Availability Monitor
After=syslog.target network-online.target
[Service]
Type=forking
PIDFile=/var/run/keepalived.pid
KillMode=process
EnvironmentFile=-/usr/local/keepalived/etc/sysconfig/keepalived
ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
IV. mysqlデュアルホスト+keepalived高可用性環境の構築
1. ノード1 keepalived.confの設定 ホストIPを変更し、バーチャルIPを設定し、keepalivedを起動します。
[root@node187 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@node187 local]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected] #email random, no email is configured here
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MASTER-HA
}
vrrp_script chk_mysql_port { # Detect if mysql service is running. There are many ways to do this, such as processes, using scripts, etc
script "/opt/chk_mysql.sh" # Monitor by script here
interval 2 # script execution interval, detected every 2s
weight -5 #priority change due to script result, priority -5 if detection fails (script returns non-zero)
fall 2 # detect 2 consecutive failures to determine a true failure. Will use weight to reduce priority (between 1-255)
rise 1 # detect 1 success to be considered a success. But do not modify the priority
}
vrrp_instance VI_1 {
# state MASTER
state BACKUP
nopreempt # Non-preempt mode
interface enp0s3 # Specify the interface of the virtual IP card, check ifconfig to be sure
mcast_src_ip 192.168.51.187
virtual_router_id 51 # router identification, MASTER and BACKUP must be the same
priority 101 # define the priority, the higher the number, the higher the priority, in the same vrrp_instance, MASTER priority must be greater than the BACKUP priority
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.51.170
}
track_script {
chk_mysql_port
}
}
# write heartbeat detection script
[root@node187 ~]# vim /opt/chk_mysql.sh
#! /bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" -eq 0 ]; then
/etc/init.d/keepalived stop
fi
[root@node187 ~]# chmod 755 /opt/chk_mysql.sh
Start the keepalived service
[root@node187 ~]# /etc/init.d/keepalived start
Starting keepalived: [OK]
2. Node 2 keepalived.confの設定 ホストIPの変更とバーチャルIPの設定、keepalivedの開始
[root@node226 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@node226 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MASTER-HA
}
vrrp_script chk_mysql_port {
script "/opt/chk_mysql.sh"
interval 2
weight -5
fall 2
rise 1
rise 1}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface enp0s3
mcast_src_ip 192.168.51.226
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
authentication}
virtual_ipaddress {
192.168.51.170
}
track_script {
chk_mysql_port
}
}
# write heartbeat detection script
[root@node226 ~]# vim /opt/chk_mysql.sh
#! /bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" -eq 0 ]; then
/etc/init.d/keepalived stop
fi
[root@node226 ~]# chmod 755 /opt/chk_mysql.sh
Start the keepalived service
[root@node226 ~]# /etc/init.d/keepalived start
Starting keepalived: [OK]
3. テスト
(1) VIPで接続し、接続が成功するか確認する。クライアントとNavicat、およびプロジェクト内の設定により接続が成功する。
mysql -uroot -proot -h192.168.51.170
<イグ
(2) vipがあるマシンのmysqlサービスを停止し、vipが転送されるのを見守る
コマンドからわかるように、現在のVIPはノード1上にあります
Node One
[root@node187 keepalived-1.3.5]# ip addr | grep 192.168
inet 192.168.51.187/24 brd 192.168.51.255 scope global noprefixroute dynamic enp0s3
inet 192.168.51.170/32 scope global enp0s3
[root@node187 keepalived-1.3.5]#
Node 2
[root@node226 keepalived-1.3.5]# ip addr | grep 192.168
inet 192.168.51.226/24 brd 192.168.51.255 scope global noprefixroute dynamic enp0s3
[root@node226 keepalived-1.3.5]#
<イグ
ノード1のmysqlサービスを停止します。コンフィギュレーションのスクリプトによると、mysqlサービスを停止するとkeepalivedも停止するため、vipリソースはノード2に切り替わります。(mysqlサービスが立ち上がっていないときは、keepalivedサービスもスムーズに立ち上がりません!)
Node 1
[root@node187 opt]# systemctl stop mysqld
[root@node187 opt]# netstat -na|grep "LISTEN"|grep "3306"|wc -l
0
[root@node187 opt]# ps -ef|grep mysql
root 1783 29952 0 10:49 pts/0 00:00:00 grep --color=auto mysql
[root@node187 opt]# ps -ef|grep keepalived
root 1647 29952 0 10:40 pts/0 00:00:00 grep --color=auto keepalived
[root@node187 opt]# ip addr | grep 192.168
inet 192.168.51.187/24 brd 192.168.51.255 scope global noprefixroute dynamic enp0s3
Node 2
[root@node226 ~]# ip addr | grep 192.168
inet 192.168.51.226/24 brd 192.168.51.255 scope global noprefixroute dynamic enp0s3
inet 192.168.51.170/32 scope global enp0s3
[root@node226 ~]# ps -ef|grep keepalived
root 18963 1 0 10:36 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 18964 18963 0 10:36 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 18965 18963 0 10:36 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 20988 17221 0 10:44 pts/0 00:00:00 grep --color=auto keepalived
[root@node226 ~]# ps -ef|grep mysql
root 18594 1 0 10:36 ? 00:00:00 /bin/sh /home/mysql/bin/mysqld_safe --datadir=/home/mysql/data --pid-file=/home/mysql/data/node226.pid
mysql 18917 18594 0 10:36 ? 00:00:00 /home/mysql/bin/mysqld --basedir=/home/mysql --datadir=/home/mysql/data --plugin-dir=/home/mysql/lib/plugin --user=mysql --log- error=/home/mysql/log/mysqld.log --pid-file=/home/mysql/data/node226.pid --socket=/home/mysql/mysql.sock --port=3306
root 21004 17221 0 10:44 pts/0 00:00:00 grep --color=auto mysql
<イグ
(3) mysqlとkeepalivedを再有効化する keepalivedをスムーズに起動させるために、まずmysqlを有効にする必要があります。
V. 遭遇した問題とその解決方法
1. 説明 パスがなく、権限もないため、このパスを作成し、mysqlユーザーに権限を付与します。
[root@node226 mysql]# service mysqld start
Starting MySQL.2020-12-17T08:53:50.054618Z mysqld_safe error: log-error set to '/home/mysql/log/mysqld.log', however file don't exist. create writable for user 'mysql'.
The server quit without updating PID file (/home/mysql/data/node226.pid).
解決方法 ログディレクトリを作成し、それを認証する
mkdir log
chown -R mysql:mysql /home/mysql
2. エラーの報告
[root@node187 mysql]# systemctl status mysqld.service
● mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since 5 2020-12-18 12:29:39 CST; 50min ago
Docs: man:systemd-sysv-generator(8)
Process: 19580 ExecStop=/etc/rc.d/init.d/mysqld stop (code=exited, status=0/SUCCESS)
Process: 21732 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)
Dec 18 12:27:56 node187 systemd[1]: Starting LSB: start and stop MySQL...
Dec 18 12:28:29 node187 mysqld[21732]: Starting MySQL................................. /etc/rc.d/init.d/mysqld: line 146: 22117 killed sleep 1
Dec 18 12:29:39 node187 systemd[1]: mysqld.service: control process exited, code=exited status=1
Dec 18 12:29:39 node187 mysqld[21732]: ..................................................................... The server quit without updating the PID file (/home/mysql/d...mysqld.mysqld.service). .mysqld.pid).
Dec 18 12:29:39 node187 systemd[1]: Failed to start LSB: start and stop MySQL.
Dec 18 12:29:39 node187 systemd[1]: Unit mysqld.service entered failed state.
Dec 18 12:29:39 node187 systemd[1]: mysqld.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
回避策
Add the configuration
[mysqld_safe]
log-error=/home/mysql/log/mysqld.log
pid-file=/home/mysql/data/mysqld.pid
3. 説明:keepalived のインストール時のエラー
configure: error:
!!! OpenSSL is not properly installed on your system.!!!
!!!! Can not include OpenSSL headers files.!!!
[root@node226 keepalived-1.3.5]# make && make install
make: *** No target specified and makefile not found. Stop.
回避策:openssl-devel をインストールします。
yum -y install openssl-devel
4. 説明 VIP経由でmysqlサービスにアクセスできない
[root@node226 keepalived-1.3.5]# mysql -uroot -proot -h192.168.51.170
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.170' (113)
解決策 トラブルシューティングの結果、NICタイプの設定が間違っていることがわかり、ifconfigでNICタイプを確認し、keepalived設定ファイルのNICタイプを修正し、修正後にアクセスを再開したところ、正常にアクセスできるようになりました。
関連
-
[解決済み】1052:フィールドリストの列「id」が曖昧である
-
[解決済み】mysql 外部キー制約が不正に形成されているエラー
-
[解決済み】MySQLの「ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再起動してみてください」を回避する方法
-
[解決済み] ローカルマシンからリモートDBをmysqldumpする方法
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] MySQLで "no "キーワードは何に使うのですか?
-
[解決済み] zsh: コマンドが見つかりません: mysql
-
[解決済み] どのようにクエリは、各行のMySQLの2つのセルを乗算することができますか?
-
Mysql 5.7のインストールと基本的な構文
-
[Err] 1273 - 不明な照合順序: 'utf8mb4_0900_ai_ci' これは、データベースにテーブルをインポートするときのエラーです、すべてのエラー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MySQLユーザーDBにパスワードカラムがない - OSXへのMySQLインストール
-
[解決済み] WHEREで集計関数は使用できません "というエラーを回避する方法
-
[解決済み] SQLキー、MUL vs PRI vs UNI
-
[解決済み] MySQLです。テーブルを作成できません (errno: 150)
-
[解決済み] エラーコード1111。グループ関数の無効な使用
-
[解決済み] テーブルがクラッシュしたと判定されたため、修復する必要があります。
-
[解決済み] MySQL テーブルのテーブルレベルロック待ち
-
[解決済み] MySQL 過去7日間を選択
-
mysql: コマンドの同期がとれない。
-
エラーNo.2003 '10.88.49.122' のMySQLサーバーに接続できません (10061)