Skip to content

Commit 849f863

Browse files
committed
add manual and trable
1 parent db7447c commit 849f863

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

manual/Replication.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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`を再起動する

manual/Trable.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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アドレスのみでサブネットはいらない

0 commit comments

Comments
 (0)