1.先在主mysql上进行锁表,防止有写数据库操作。
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.04 sec)
2.备份主数据库,然后在从数据中导入
这里我是手动备份
df -h查看硬盘空间,选择存储备份文件的磁盘,并创建备份目录backup
cd /home
mkdir backup
cd backup
创建一个sh文件,写入备份命令
vim backup.sh
#!/bin/bash
mysqldump -uroot -proot shareapp > /home/backup/shaerapp_$(date +%Y%m%d_%H%M%S).sql
#!/bin/bash
mysqldump -uroot -proot shareapp | gzip > /home/backup/shareapp_$(date +%Y%m%d_%H%M%S).sql.gz
mysqldump -u(mysql用户名) -p(密码) (数据库名)> (导出的路径)
注意sh文件默认没有执行权限,需要授予权限
chmod u+x backup.sh
crontab -e 编辑定时任务,输入:
*/1 * * * * /backup/backup.sh 每隔1分钟执行一次
————————————————
3.查看主mysql的状态
mysql> show master status\G;
*************************** 1. row ***************************
File: mysqlbin-log.000004
Position: 3357681
Binlog_Do_DB:
Binlog_Ignore_DB: information_schema,mysql,performance_schema,sys
Executed_Gtid_Set:
1 row in set (0.00 sec)
4.停止从同步
mysql> stop slave;
Query OK, 0 rows affected (0.02 sec)
5.修改从mysql
mysql> CHANGE MASTER TO MASTER_HOST='{主mysqlIP}', MASTER_USER='{账号}', MASTER_PASSWORD='{yourpassword}', MASTER_LOG_FILE='mysqlbin-log.000004', MASTER_LOG_POS=3357681;
5.重启从同步
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
6.查看从状态
start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 主mysqlIP
Master_User: 账号
Master_Port: 端口
Connect_Retry: 60
Master_Log_File: mysqlbin-log.000004
Read_Master_Log_Pos: 3357681
Relay_Log_File: mservice139-relay-bin.000002
Relay_Log_Pos: 323
Relay_Master_Log_File: mysqlbin-log.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: information_schema,mysql,performance_schema,sys
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: 3357681
Relay_Log_Space: 536
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: 138
Master_UUID: 9c3be8e4-9b93-11e8-9c51-000c2942d5cd
Master_Info_File: /data/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
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
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
只要其中两个状态为yes即可了,
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7.解锁主mysql
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)