MySQL主從介紹
配置主
mysql安裝後修改my.cnf配置文件,修改my.cnf,增加server-id=130和log_bin=dashuo1
[root@100xuni1 ~]# vim /etc/my.cnf
修改完配置文件後,啓動或者重啓mysqld服務
[root@100xuni1 ~]# /etc/init.d/mysqld restart
重啓完成後/data/mysql下會出現幾個文件
把mysql數據庫的zrlog庫備份並恢復成hanshuo庫,作爲測試數據
[root@100xuni1 mysql]# mysqldump -uroot -phanshuo1 zrlog > /tmp/zrlog.sql ##備份db1庫
[root@100xuni1 mysql]# mysql -uroot -phanshuo1 -e "create database hanshuo" ##創建hanshuo庫
[root@100xuni1 mysql]# mysql -uroot -phanshuo1 hanshuo < /tmp/zrlog.sql ##把備份zrlog的數據庫恢復成hanshuo數據庫
進入數據庫創建用戶,用作主從同步數據
[root@100xuni1 mysql]# mysql -uroot -phanshuo1 ##進入數據庫
mysql> grant replication slave on *.* to 'repl'@'192.168.63.104' identified by 'www692517111';
##創建用戶
鎖表目的是不讓繼續寫
mysql> flush tables with read lock;
mysql> show master status;
爲了測試把所有的庫做下備份,用作同步
配置從
從上邊已經安裝了mysql配置文件里加上server-id
[root@100xuni1 ~]# vim /etc/my.cnf
修改完配置文件後,啓動或者重啓mysqld服務
[root@100xuni1 ~]# /etc/init.d/mysqld restart
把主上aming庫同步到從上
可以先創建hanshuo庫,然後把主上的/tmp/mysql.sql拷貝到從上,然後導入hanshuo庫
[root@100xuni1 ~]# scp 192.168.63.100:/tmp/*.sql /tmp/
創建庫
mysql> create database hanshuo
mysql> create database db1;
mysql> create database zrlog;
mysql> create database mysql2
恢復數據庫
保持主從數據庫一致
實現主從
登錄從的數據庫
[root@100xuni1 ~]# mysql -uroot -phanshuo1
mysql> stop slave;
主從同步非常重要的語句
mysql> change master to master_host='192.168.63.100', master_user='repl', master_password='www692517111', master_log_file='dashuo1.000001', master_log_pos=16821;
mysql> start slave;
判斷主從是否配置成功
**在從上登錄mysql執行show slave status\G
到主上恢復操作
查看主從同步是否正常
測試主從同步參數解釋
主從都可以:定義要同步的庫,僅同步指定的一個庫比如就同步zrlog庫寫法如下
mysql> binlog-do-db=zrlog ##如果想同步多個庫以逗號隔開
主從都可以定義:忽略某一個庫比如說除了zrlog庫不同步其他都同步
mysql>binlog-ignore-db=zrlog
再從上和可以定義指定同步表和不想同步某個表儘量不要用這兩個參數
mysql>replicate_do_table=
mysql>replicate_ignore_table=
針對一個表的所有進行更改,比如aming庫%表,支持庫點表
replicate_wild_do_table= //如aming.%, 支持通配符%
replicate_wild_ignore_table=
測試主從是否成功
針對hanshuo庫進行測試
mysql> use hanshuo ##切換hanshuo庫
查看hanshuo庫的表
mysql> show tables;
針對表做操作
mysql> select count(*) user; ##主上查看多少行
+------+
| user |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
mysql> select count(*) user; ##從上查看多少行
+------+
| user |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
在主上把link表做個刪除操作
在主上把hanshuo這個庫刪除掉