闲来无事,没有配置过mysql主从 今天找了下 还是遇到坑了;
数据文件:/var/lib/mysql/
配置文件模板:/usr/share/mysql
mysql客户端工具目录:/usr/bin
日志目录:/var/log/
pid,sock文件目录:/tmp/
准备工作:主从数据库表都要一样
主master:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
从slave:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[不是必须]启用二进制日志
server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
重启服务器
service mysqld stop;
service mysqld start;
进入主服务器 创建用户
mysql -u用户名 -p密码 -h127.0.0.1 -P3306
GRANT REPLICATION SLAVE ON *.* to 'sync'@'%' identified by '123456';
查看master状态
mysql> mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 571 | jh_healthy | mysql | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
//执行下面这一步时 要先检查从库的server-uuid是否和主库一样
server-uuid存放地址/var/lib/mysql/auto.cnf
server-uuid=a5935b2b-c426-11e6-91ed-000c299ef165 修改id不一样就行
配置从服务器Slave:
mysql> CHANGE MASTER TO
-> MASTER_HOST = '主服务器地址',
-> MASTER_USER ='sync',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000001', //对应主库查询 show master status; 显示的 mysql-bin.000001
-> MASTER_LOG_POS=571; //对应主库查询 show master status; 显示的 571
检查从服务器复制功能状态:
stop slave; //停止功能
start slave;启用
mysql> show slave status\G; //两个为yes才表示成功
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.40.226
Master_User: sync
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 571
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes 两个为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: 571
Relay_Log_Space: 457
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:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: a5935b2b-c426-11e6-91ed-000c299ef145
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
ERROR:
No query specified
GAME OVER;