File tree Expand file tree Collapse file tree 2 files changed +89
-0
lines changed Expand file tree Collapse file tree 2 files changed +89
-0
lines changed Original file line number Diff line number Diff line change
1
+ # 1. 事前準備
2
+ - マスターとスレーブサーバーを用意する
3
+
4
+ # 2. レプリケーション設定
5
+ ## 2-1. マスターの設定
6
+ ### 2-1-1. server_id、バイナリログ有効化を設定する
7
+ - ` my.cnf ` に一意の` server_id ` 、` log_bin ` を記述する
8
+ - IPアドレスでいいかな
9
+
10
+ ### 2-1-2. MySQLにスレーブ接続用のアカウントを作成する
11
+
12
+ ``` sql
13
+ mysql> CREATE USER ' mokusen' @' 192.168.30.5' IDENTIFIED WITH ' mysql_native_password' BY ' secret' ;
14
+ mysql> GRANT REPLICATION SLAVE ON * .* TO ' mokusen' @' 192.138.30.5' ;
15
+ ```
16
+
17
+ ### 2-1-3. スレーブへのコピーデータを作成する
18
+ - 新規でない場合を想定する
19
+ - マスターサーバーで以下を実行する
20
+
21
+ ``` bash
22
+ mysqldump -h localhost -u root -p -A --single-transaction --quick --master-data=2 > master.dump
23
+ ```
24
+
25
+ ### 2-1-4. 作成したdumpファイルから、MASTER_LOG_FILEとMASTER_LOG_POSを取得する
26
+ - 以下のコードを実行する
27
+
28
+ ``` bash
29
+ cat master.dump | grep " MASTER_LOG_FILE='"
30
+ ```
31
+
32
+ - 返却値が以下であると仮定する
33
+
34
+ ``` bash
35
+ -- CHANGE MASTER TO MASTER_LOG_FILE=' binlog.000001' , MASTER_LOG_POS=100;
36
+ ```
37
+
38
+ ## 2-2. スレーブの設定
39
+ ### 2-2-1. server_id、バイナリログ有効化を設定する
40
+ - ` my.cnf ` に一意の` server_id ` 、` log_bin ` を記述する
41
+ - IPアドレスでいいかな
42
+
43
+ ### 2-2-2. レプリケーションの設定
44
+ - スレーブサーバーで以下を実行する
45
+
46
+ ``` sql
47
+ mysql> CHANGE MASTER TO
48
+ - > MASTER_HOST= ' 192.168.30.5' ,
49
+ - > MASTER_PORT= 3306 ,
50
+ - > MASTER_LOG_FILE= ' binlog.000001' ,
51
+ - > MASTER_LOG_POS= 100 ,
52
+ - > MASTER_HEARTBEAT_PERIOD= 60 ;
53
+ ```
54
+
55
+ ### 2-2-3. レプリケーションの開始
56
+ - 以下を実行する
57
+
58
+ ``` sql
59
+ mysql> START SLAVE USER= ' mokusen' PASSWORD= ' secret' ;
60
+ ```
61
+
62
+ ## 3. レプリケーションをやめる
63
+ - 以下のコマンドを実行する
64
+
65
+ ``` sql
66
+ mysql> stop slave;
67
+ mysql> reset slave;
68
+ ```
69
+
70
+ - ` mysqld ` を再起動する
Original file line number Diff line number Diff line change
1
+ # トラブルシューティング
2
+ ## レプリケーション
3
+ ### show slave statusすると、error connecting to master ~~~が表示される
4
+ #### 1. 接続先のパスワードプラグインがcache_sha2_passwordである
5
+ - MySQL8.0では、パスワードプラグインが` cache_sha2_password ` になっており、このままでは接続できないので、` mysql_native_password ` に変更する
6
+ - 以下のコマンドで修正する
7
+
8
+ ``` sql
9
+ mysql> alter user ' user-name' @' ip etc...' identified with ' mysql_native_password' by ' pass' ;
10
+ ```
11
+
12
+ # ### 2. 接続対象のホストのIPアドレスを間違えている
13
+ - 実際に何も考えずに以下のように設定し、接続できなかった。
14
+
15
+ ` ` ` sql
16
+ mysql> create user 'slave'@'192.168.56.11/255.255.255.0' identified by 'pass';
17
+ ` ` `
18
+
19
+ - ホストはIPアドレスのみでサブネットはいらない
You can’t perform that action at this time.
0 commit comments