mysqlのマスタースレーブレプリケーション--centos

 mysqlのマスタースレーブのレプリケーションを多く使用していると考えられているが、彼の仕事のためには使用されませんどのようになっています。この期間を利用しても、自分の再びの達成、比較的アイドルです。そこにインターネット上で同様の記事がたくさんありますが、その実装はまだ価値が録音ですが。

環境:

マスター:CentOSの6.0 MySQLの5.1.67-ログIP 192.168.0.107:
サーバーから:CentOSの6.0 MySQLの5.1.67-ログIP :192.168.0.109
プライマリ・データベース・サーバのテスト

コードをコピー

TABLE `menber`を作成します(
` name`のVARCHAR(255)DEFAULT NULLデフォルト''、
`id`のint(11)NOT NULL AUTO_INCREMENT、
PRIMARY KEY(` id`)
)ENGINE = MyISAMのAUTO_INCREMENT = 1 DEFAULT CHARSET = latin1の。
; menber`( `NAME`、` id`)の値( 'zhangsan'、 '1') `への挿入 
menber` `挿入(` NAME`、 `id`)の値( 'リージ'、 '2')。
menber` `挿入(` NAME`、 `id`)の値( '王五'、 '3')。

コードをコピー

MySQLのデフォルトの設定ファイル、特別な/etc/my.cnfにデフォルト値を指定しない場合

MySQLの設定ファイルの検索順序:な/etc/my.cnf /etc/mysql/my.cnf〜/ .my.cnf

構成:

まず、プライマリサーバ

1.1、許可レプリケーションスレーブによるレプリケーションのユーザーを作成します。

*上のMySQLは>助成金のレプリケーションスレーブ*「REPL」によって識別される「repl'@'192.168.0.109」へ。
MySQLの>フラッシュ権限;

1.2、編集my.cnfファイル

我々な/etc/my.cnf

加えます

  サーバー-ID = 107

ログイン-binとオープンバイナリログファイル([のchown -R mysqlのことでMySQLの必要性は/ var / libに書き込み権限/ mysqlの/ディレクトリ:変更のmysqlの/ var / libに/ mysqlの構文

  ログ・ビン=の/ var / libに/ mysqlの/ mysqlのビン

#人はmysqlはショーマスターのステータスを実行表示されるかどうか、絶対パスを指定します。あなたは、ログの場合は表示できません 
MySQLの>ショーマスターのステータスを、
SET(0.00秒)を空に
MySQLの>バイナリログを表示します。
ERROR 1381(HY000):あなたで使用してバイナリログではありません

他の拡張機能の設定項目: 

ビンログ-DO-DBのバックアップ複数のデータベース場合は、バックアップする= mysql1#データベース名、繰り返しにこのオプションを設定し
たバックアップ複数のデータベース場合のbinlog-無視-DB = mysql2#この繰り返しを設定し、データベース名をバックアップする必要はありませんオプション
= 1#このパラメータそうでない場合は、いくつか記録するために更新されたバイナリファイルを与えることはありません、追加する必要があり、スレーブの更新ログ
のコピー操作を続行、エラーをスキップする= 1#スレーブスキップエラーを(オプション)

1.3、MySQLデータベースを再起動します

サービスmysqldを再起動

1.4、読み取りロックを設定します

mysqlの読み取りロック付き> FLUSH TABLES;

1.5バイナリログログファイル名を与えるとオフセットする(ここでは名前と位置の値が時にスレーブサーバ構成の背後に使用する必要があるファイルを覚えておいてください

コードをコピー

MySQLの>ショーマスターのステータス。
+ ------------------ + ---------- + -------------- + ---- -------------- + 
| ファイル| 位置| Binlog_Do_DB | Binlog_Ignore_DB | 
+ ------------------ + ---------- + -------------- + ---- -------------- + 
| mysqlの-bin.000001 | 713 | | | 
+ ------------------ + ---------- + -------------- + ---- -------------- + 
セット内の1行(0.00秒)

コードをコピー

    

1.6、同期するデータベースのバックアップ

mysqldumpをテスト> test.sql内

1.7、ロック解除

MySQLの>ロック解除テーブル。

    

第二に、サーバーから(192.168.0.109)

スレーブ・サーバ(192.168.0.109)にバックアップからデータベース・データ・マスタ(192.168.0.107)を復元

2.1、編集my.cnfファイル

我々な/etc/my.cnf

加えます

サーバID = 109

2.2は、データベースから再起動します

サービスmysqldを再起動

2.3データベースからセットに対応

  ここで注意し、その名前とログファイルの位置の値は、ホスト、ユーザーの残りの部分とパスワードベースのアカウントとパスワードデータベースの設定

コードをコピー

MySQLの>停止スレーブ;
クエリOK、影響を受けた0行(0.00秒)

MySQL>変更マスタ 
   > MASTER_HOST = '192.168.0.107'、 -
   - > master_user = 'REPL'、
   - > master_password = 'REPL'、
   - > MASTER_LOG_FILE = 'のMySQL-bin.000001'、
   - > MASTER_LOG_POS = 713。

MySQLの>スレーブを起動します。
クエリOK、影響を受けた0行(0.00秒)

MySQLの>ショースレーブステータス\ G。
*************************** 1行******************** *******
Slave_IO_State:イベント送信するためのマスターを待っている
MASTER_HOSTを:192.168.0.107
Master_User:REPL
MASTER_PORT:3306
Connect_Retry:60
MASTER_LOG_FILEます。mysql-bin.000001
Read_Master_Log_Pos:1079
RELAY_LOG_FILE:mysqldのリレー-bin.000004
RELAY_LOG_POS: 251
のRelay_Master_Log_File:MySQLの-bin.000001
Slave_IO_Running:はい
Slave_SQL_Running:はい
Replicate_Do_DB: 
Replicate_Ignore_DB: 
Replicate_Do_Table: 
Replicate_Ignore_Table: 
Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
Last_Errno:0
LAST_ERROR: 
Skip_Counter:0
Exec_Master_Log_Pos:1079
Relay_Log_Space:407
Until_Condition:なし
Until_Log_File: 
Until_Log_Pos:0
Master_SSL_Allowed:いいえ
Master_SSL_CA_File: 
Master_SSL_CA_Path: 
Master_SSL_Cert: 
Master_SSL_Cipher: 
Master_SSL_Key: 
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:いいえ
Last_IO_Errno:0
Last_IO_Error: 
Last_SQL_Errno:0
Last_SQL_Error: 
1行セット中の(0.00秒)

ERROR: 
指定されていませんクエリ

コードをコピー

ここでは主に確認してください。

  Slave_IO_Running =はい
  Slave_SQL_Running =はい

Slave_IO_Running場合:いいえまたはSlave_SQL_Running:NOは、データベースからの集合に対応し、やり直し2.3にする必要があります

第三に、テスト:
  あなたが設定した後、上記の項目は、マスタとスレーブスレッドの状態で見ることができます。マスター上では、スレーブI / Oスレッドの接続が作成されて見ることができます:マスターのshow PROCESSLIST \ Gを入力します。

コードをコピー

MySQLの>ショーPROCESSLIST \ G。
*************************** 1行******************** ******* 
     イド:4 
   ユーザー:ルート
   ホスト:localhostの
     デシベル:NULL 
コマンド:クエリ
   時間:0 
  状態:NULL 
   情報:ショーPROCESSLIST 
****************** ********* 2行*************************** 
     イド:19 
   ユーザー:REPL 
   ホスト:192.168.0.109 :42337 
     のdb:NULL 
コマンド:BINLOGダンプ
   時間:183 
  状態:スレーブにすべてのビンログを送信しました。binlogのを待っていると、更新する
   NULL:インフォ
セット内の2行(0.00秒)

ERROR:
いいえクエリが指定されていません

コードをコピー

  3.1、プライマリ・データベース内:192.168.0.107新しいデータを追加します

`menber`(` name`の)値( '・リー8')への挿入; `menber`(` name`の)値( 'あおい')への挿入。

データベースから3.2:192.168.0.109上のViewデータベース

コードをコピー

MySQLの> menberからSELECT *; 
+ ----------- + ---- + 
|名前|述べたID上記| 
+ ----------- + ---- + 
| zhangsan | 1 | 
|リシ| 2 | 
|ワング・ウ| 3 | 
|イ8 | 4 | 
|あおい| 5 | 
+ ----- + ----- + 
SET 5行(0.02秒)

コードをコピー

  この時点で、データがデータベースに正常192.168.0.109からスレーブにコピーされています。

公開された168元の記事 ウォン称賛16 ビュー90000 +

おすすめ

転載: blog.csdn.net/ajax_yan/article/details/104993867