概念mysql
主從原理:linux
場景:sql
MySQL啓動異常,查看日誌數據庫
cd /data/mysql less 主機名.err ...[ERROR]...Permission denied ... ...[ERROR]...read-write mode
A機器做爲主,IP爲10.1.1.8服務器
第一步,開啓主(binlog)less
[root@axiang-02 ~]# vi /etc/my.cnf, [mysqld]下增長 server-id=8 log_bin=axianglinux1 [root@axiang-02 ~]# /etc/init.d/mysqld restart //重啓 [root@axiang-02 ~]# cd /data/mysql [root@axiang-02 mysql]# ls -lt 總用量 176184 -rw-rw---- 1 mysql mysql 22 8月 30 15:01 axianglinux1.index binlog索引,主從根本 -rw-rw---- 1 mysql mysql 120 8月 30 15:01 axianglinux1.000001 第一個二進制binlog文件
第二步:準備庫和同步用戶ide
參照blog庫製做axiang用於測試測試
[root@axiang-02 mysql]# mysqldump -uroot -paxianglinux blog > /tmp/blog.sql [root@axiang-02 mysql]# mysql -uroot -paxianglinux -e "create database axiang" [root@axiang-02 mysql]# mysql -uroot -paxianglinux axiang < /tmp/blog.sql [root@axiang-02 mysql]# ls -lt 總用量 176184 -rw-rw---- 1 mysql mysql 220 8月 30 15:08 axianglinux1.000001 drwx------ 2 mysql mysql 20 8月 30 15:08 axiang
建立用做同步數據的用戶線程
[root@axiang-02 mysql]# mysql -uroot -paxianglinux mysql> grant replication slave on *.* to 'repl'@'10.1.1.9' identified by 'axianglinux';
第三步,鎖表並查看主信息rest
mysql> flush tables with read lock; 鎖表 mysql> show master status; +---------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +---------------------+----------+--------------+------------------+-------------------+ | axianglinux1.000001 | 425 | | | | +---------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
第四步,作給B起始數據
[root@axiang-02 mysql]# mysqldump -uroot -paxianglinux cms > /tmp/cms.sql
B機器做爲從,IP爲10.1.1.9
第一步,加入ID
[root@axiang-03 ~]# vi /etc/my.cnf [mysqld]下加入 server-id=9 //不須要binlog,id不能與主同樣,建議寫IP末位
第二步,同步起始數據數據
[root@axiang-03 ~]# scp 10.1.1.8:/tmp/*.sql /tmp/ //遠程複製過來 [root@axiang-03 ~]# mysql -uroot -paxianglinux mysql> create database cms; mysql> create database axiang; mysql> create database blog; [root@axiang-03 ~]# mysql -uroot -paxianglinux blog < /tmp/blog.sql [root@axiang-03 ~]# mysql -uroot -paxianglinux axiang < /tmp/blog.sql [root@axiang-03 ~]# mysql -uroot -paxianglinux cms < /tmp/cms.sql
第三步開啓從
[root@axiang-03 ~]# mysql -uroot -paxianglinux mysql> stop slave; mysql> change master to master_host='10.1.1.8', master_user='repl', master_passwoord='axianglinux', master_log_file='axianglinux1.000001', master_log_pos=425; mysql> start slave; mysql> show slave status\G
指定主從範圍
主服務器上 binlog-do-db= //僅同步指定的庫 binlog-ignore-db= //忽略指定庫
主加入指定同步數據庫
從服務器上 replicate_do_db= replicate_ignore_db= replicate_do_table= replicate_ignore_table= replicate_wild_do_table= //如aming.%, 支持通配符% replicate_wild_ignore_table=
測試結論
show master status
重新連接