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