主从搭建步骤如下:
设定主服务器为:192.168.200.7从服务器:192.168.202.212
1)确定要分配的ID值,必须是彼此不同的64位整数。
2)从服务器上必须要在主服务器上有一个具备足够权限的帐户,从服务器将使用这个帐户去连接主服务器并请求服务器把二进制变更日志发送给它。创建帐户:
mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'slave_user'@'192.168.202.212' IDENTIFIED BY 'slave_pass';
3)把主服务器上的数据拷贝到从服务器上以完成主、从服务器之间最初的同步:一种办法是先在主服务器主机上制作一份备份,再把这个备份加载到从服务器上去。另一种办法是通过网络把各有关数据库从主服务器全部拷贝到从服务器上,可以用Load data from master语句来建从服务器。在这里用第一种,无论用哪一种办法,从开始制作备份到主服务器重新配置好二进制日志功能,都必须保证在主服务器上没有发生任何修改操作。
4)关停主服务器(如果正运行)
5)对主服务器的配置进行修改----把它的镜像ID告诉它进激活二进制日志功能
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
6)重新启动主服务器;如果在启动之前有二进制变更日志,开启后用reset master语句清除。
7)关停从服务器(如果在运行)
8)对从服务器进行配置,最好使用默认端口号:
[mysqld]
server-id = 2 #slave_server_id
master-host = 192.168.200.7 #master-host
master-user = slave_user
master-password = slave_pass
log_bin = /var/log/mysql/mysql-bin.log
注:slave_user和slave_pass值是在主服务器为从服务器创建的那个帐户的用户名和密码,但是这样是不安全的,因为配置文件其它用户也可以读取,所以应该把这几行添加到一个只有mysql管理员登录帐户才能访问的选项文件里:
[mysqld]
!include = /var/lib/mysql/myuser.cnf
vim /var/lib/mysql/myuser.cnf
master-user = slave_user
master-password = slave_pass
9)配置完成后重新启动服务器。
然后登录mysql> start slave;如果没有错误,则成功。
10)检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。
mysql>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.200.7
Master_User: slave_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 106
Relay_Log_File: mysqld-relay-bin.000004
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
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: 106
Relay_Log_Space: 552
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
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: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)