mysql主从.主主配置详细

  • 格式:docx
  • 大小:35.75 KB
  • 文档页数:17

路漫漫其修远兮,吾将上下而求索 -

百度文库

11 查询mysql内所有用户情况mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS

query FROM er;

如果没有在/etc/f中配置bin-log位置,MySQL的bin-log默认文件位置在/var/lib/mysql下

配置时还请注意:

1. 主服务器、从服务器的IP地址可能变化,不要在f配置固定的master-ip,用命令指定。

2. 主服务器和从服务器都启动ssh服务,方便从服务器远程登录主服务器。

3.

在从服务器上测试主服务器的状态。

4. mysql配置改变主要要重启服务sudo restart mysql或service mysql restart,我就因为没有及时重启浪费了时间。

5. 配置发生改变后最好重新开启一个命令行终端输入命令。

6. 从数据库的改变也能同步到主数据库

过程 1.1. Master 设置步骤

1. 配置 f 文件

确保主服务器主机上f文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项

# vim /etc/mysql/f

server-id = 1

log_bin = /var/log/mysql/mysql-bin.log

expire_logs_days = 10

max_binlog_size = 100M

binlog_do_db = test

binlog_ignore_db = mysql 路漫漫其修远兮,吾将上下而求索 -

百度文库

22

bind-address默认是127.0.0.1你必须更改它,否则Slave将无法链接到 Master

#bind-address = 127.0.0.1

bind-address = 0.0.0.0

重启服务器

neo@netkiller:~$ sudo /etc/init.d/mysql reload

* Reloading MySQL database server mysqld [ OK ]

建议使用reload,如果不起作用再用restart

2. 登录slave服务器,测试主库3306工作情况,如果看到下面相关信息表示工作正常。

3.

4. # telnet 192.168.1.246 3306

5. Trying 192.168.1.246...

6. Connected to 192.168.1.246.

7. Escape character is '^]'.

8. I

9. 5.1.61-0ubuntu0.11.10.1-log1W

10.

11. 创建账户并授予REPLICATION SLAVE权限

12.

13.mysql> GRANT REPLICATION SLAVE ON *.* TO

'replication'@'%' IDENTIFIED BY 'slavepass';

14.mysql> FLUSH PRIVILEGES;

15.

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO

replication@'192.168.245.131' IDENTIFIED BY 'slavepass' 路漫漫其修远兮,吾将上下而求索 -

百度文库

33 16. 锁表禁止写入新数据

17.

18.mysql> FLUSH TABLES WITH READ LOCK;

19.

20. 查看Master 工作状态

21.

22.mysql> SHOW MASTER STATUS;

23.+------------------+----------+--------------+------------------+

24.| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

25.+------------------+----------+--------------+------------------+

26.| mysql-bin.000002 | 106 | test | mysql |

27.+------------------+----------+--------------+------------------+

28.1 row in set (0.00 sec)

29.

如果显示下面内容表示,配置不正确

mysql> SHOW MASTER STATUS;

Empty set (0.02 sec)

取得快照并记录日志名和偏移量后,可以在主服务器上重新启用写活动

mysql> UNLOCK TABLES;

路漫漫其修远兮,吾将上下而求索 -

百度文库

44 5.1.2. Slave

过程 1.2. Slave 设置步骤

1. 配置f

从服务器的ID必须与主服务器的ID不相同,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。

# vim /etc/mysql/f

[mysqld]

server-id = 2

2. # service mysql restart

3. mysql start/running, process 22893

4.

5. 指定 master 相关参数

在从服务器上执行下面的语句,用你的系统的实际值替换选项值

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name',

-> MASTER_USER='replication_user_name',

-> MASTER_PASSWORD='replication_password',

-> MASTER_LOG_FILE='recorded_log_file_name',

-> MASTER_LOG_POS=recorded_log_position;

CHANGE MASTER TO MASTER_HOST='192.168.245.129',

MASTER_USER='replication', MASTER_PASSWORD='slavepass';

mysql> CHANGE MASTER TO MASTER_HOST='192.168.245.129',

MASTER_USER='repl', MASTER_PASSWORD='slavepass'; 路漫漫其修远兮,吾将上下而求索 -

百度文库

55 Query OK, 0 rows affected (0.14 sec)

6. 启动从服务器线程

7.

8. mysql> START SLAVE;

9. Query OK, 0 rows affected (0.00 sec)

10.

11. SLAVE STATUS

12.

13.mysql> SHOW SLAVE STATUS\G

14.*************************** 1. row ***************************

15. Slave_IO_State: Connecting to master

16. Master_Host: 192.168.245.129

17. Master_User: repl

18. Master_Port: 3306

19. Connect_Retry: 60

20. Master_Log_File:

21. Read_Master_Log_Pos: 4

22. Relay_Log_File: mysqld-relay-bin.000002

23. Relay_Log_Pos: 98

24. Relay_Master_Log_File:

25. Slave_IO_Running: Yes

26. Slave_SQL_Running: Yes

27. Replicate_Do_DB:

28. Replicate_Ignore_DB:

29. Replicate_Do_Table:

30. Replicate_Ignore_Table:

31. Replicate_Wild_Do_Table:

32.Replicate_Wild_Ignore_Table:

33. Last_Errno: 0

34. Last_Error:

35. Skip_Counter: 0