Mysqlシングルマシンマルチインスタンスおよびプライマリ・セカンダリ・バックアップ設定
5253 ワード
Slaveデータベースの準備新しいディレクトリ、例えばmysql 3307、Slaveデータベースのディレクトリとします. Master Mysqlディレクトリの下のshareディレクトリをmysql 3307にコピーします. mysql 3307ディレクトリの下にdataディレクトリを作成し、Master Mysqlのdataの下にあるmysqlフォルダとtestフォルダをmysql 3307dataの下にコピーします. Master Mysqlディレクトリの下のmyをコピーします.iniからmysql 3307まで.
マスターライブラリのmyを変更します.ini
Master Mysqlディレクトリの下のmyを変更します.iniファイル.
[mysqld]を見つけて、次の内容を追加します.
バックアップアカウントの作成
Masterライブラリに同期権限を持つユーザー:backup、パスワード:backupを作成します.
Slaveライブラリのmyを変更します.ini
mysql 3307ディレクトリの下のmyを変更します.iniファイル.[client]でport=3306が見つかり、port=3307 に変更されました.[mysqld]でport=3306を見つけ、port=3307 に変更追加内容:
Slaveをサービスに設定
コマンドラインの下で実行:
注意:パラメータが間違っている場合は、プロンプトは表示されませんが、サービスの開始時には1607エラーが表示されます.
構成に成功すると、windowのサービスに対応するサービスが表示されます.サービス名はmysql 3307です.
PS 1. Mysqlサービスの削除:mysqld-remove mysql 3307.2.Mysqlサービスの起動:net start mysql 3307.Mysqlサービスの停止:net stop mysql 3307
Masterデータベースのステータスの問合せ
ここではFileとPositionの値を記録する必要があります.
Slaveデータベースの設定
Slaveデータベースの起動とログイン
mysqlコマンドのパラメータ:-P 3307は3307ポートを指し、-Pは大文字でなければなりません.
Slaveパスワードを入力し(コピーしたMasterデータベースなので、パスワードはMasterデータベースと同じ)、データベースにログインします.
mysqlとtestが表示され、mysql 3307データベースインスタンスに記載されていることを示します.
実行を続行:
注意:1.master_log_posの値には引用符を付けないでください.2. master_hostは必ずIPアドレスを書きます.
実行を続行:
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1とは、Slaveコピーエラー時にエラーがスキップされることを意味します.
クエリーの結果が次のように表示された場合は、構成が成功したことを示します.
プライマリ・スレーブ・データベースのテスト
Masterデータベースtestでテーブルを作成し、レコードを追加し、Slaveデータベースで追加したレコードをクエリーできます.
マスターライブラリのmyを変更します.ini
Master Mysqlディレクトリの下のmyを変更します.iniファイル.
[mysqld]を見つけて、次の内容を追加します.
log-bin=mysql-bin
server-id=1
#binlog-do-db=test
#binlog-ignore-db=mysql
バックアップアカウントの作成
Masterライブラリに同期権限を持つユーザー:backup、パスワード:backupを作成します.
mysql>grant replication slave on *.* to backup@'localhost' identified by 'backup';
mysql>flush privileges;
Slaveライブラリのmyを変更します.ini
mysql 3307ディレクトリの下のmyを変更します.iniファイル.
log-bin=mysql-bin
#server-id Master mysql/my.ini id
server-id=10
#mysql
master-user=backup
#mysql
master-pass=backup
#mysql
master-port=3306
master-connect-retry=60
#
replicate-do-db=test
Slaveをサービスに設定
コマンドラインの下で実行:
mysqld -install mysql3307 --defaults-file="f:\mysql3307\my.ini"
注意:パラメータが間違っている場合は、プロンプトは表示されませんが、サービスの開始時には1607エラーが表示されます.
構成に成功すると、windowのサービスに対応するサービスが表示されます.サービス名はmysql 3307です.
PS 1. Mysqlサービスの削除:mysqld-remove mysql 3307.2.Mysqlサービスの起動:net start mysql 3307.Mysqlサービスの停止:net stop mysql 3307
Masterデータベースのステータスの問合せ
ここではFileとPositionの値を記録する必要があります.
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 98 | | |
+------------------+----------+--------------+------------------+
Slaveデータベースの設定
Slaveデータベースの起動とログイン
net start mysql3307
mysql -uroot -p -P3307
mysqlコマンドのパラメータ:-P 3307は3307ポートを指し、-Pは大文字でなければなりません.
Slaveパスワードを入力し(コピーしたMasterデータベースなので、パスワードはMasterデータベースと同じ)、データベースにログインします.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
mysqlとtestが表示され、mysql 3307データベースインスタンスに記載されていることを示します.
実行を続行:
mysql>slave stop;
mysql>change master to
->master_host='127.0.0.1',
->master_user='backup',
->master_password='backup',
->master_log_file='mysql-bin.000001',
->master_log_pos=98;
注意:1.master_log_posの値には引用符を付けないでください.2. master_hostは必ずIPアドレスを書きます.
実行を続行:
mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>slave start;
mysql>show slave status \G;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1とは、Slaveコピーエラー時にエラーがスキップされることを意味します.
クエリーの結果が次のように表示された場合は、構成が成功したことを示します.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
プライマリ・スレーブ・データベースのテスト
Masterデータベースtestでテーブルを作成し、レコードを追加し、Slaveデータベースで追加したレコードをクエリーできます.