mysql主從複製

配置master和slave兩臺mysql服務器的主從複製,使得向master服務器的temp數據庫的users表插入數據時,自動向slave服務器同步。

master要啓用binlog日誌,要授權給複製用戶,備份數據庫時要鎖表。在slaveCHANGE MASTER TO配置複製參數,start slave啓用複製。

[root@mysql-master ~]# yum install mysql-server  

[root@mysql-master ~]# service mysqld start

[root@mysql-master ~]# netstat -ant  查看3306端口是否開放

chkconfig --level 345  mysqld on 添加爲自啓動服務

mysqladmin -u root -p password 123

Mysql-master:

[root@mysql-master ~]# mysql -u root -p

show  databases;

創建數據庫:

create  database  temp;

創建表:

create table temp.users(user_name char(16) not null,user_passwd char(48) default "",primary key(user_name)); 

插入測試數據:

insert into temp.users values("zhang3","123");

查詢數據:

select * from temp.users;

master數據庫上授權訪問:(注意改地址)

grant all on *.* to u1@'%' identified by '123';

grant all on temp.* to u2@'192.168.?.%' identified by '123';

grant select on temp.users to u3@'192.168.?.202' identified by '123';

master數據庫上查看MYSQL數據庫中所有用戶:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

在master數據庫上查看數據庫授權:

show grants for u1@'%';

在slave虛擬機上連接master數據庫驗證授權:

[root@mysql-slave ~]# mysql -u u1 -h 192.168.?.201 -p

配置mysql主從複製

master數據庫上啓用binlog日誌,建立從庫賬號rep

[root@mysql-master /]# cp  /usr/share/doc/mysql-server-5.1.73/my-medium.cnf /etc/my.cnf

重啓mysql,查看binlog日誌狀態

[root@mysql-master /]# service mysqld restart

mysql> show variables like 'log_bin';


Mysql>show master status;

建立從庫賬號rep

Mysql>grant replication slave on *.* to rep@'192.168.?.%' identified by '123';

master數據庫上備份現有數據庫 

master數據庫鎖表

mysql> flush tables with read lock;

備份master數據庫

[root@mysql-master /]# mysqldump -u root -p --all-databases | gzip > /root/database_`date '+%m-%d-%Y'`.sql.gz

把備份文件拷貝到slave虛擬機(scp:openssh-clients)

[root@mysql-master~]#yum install openssh-clients

[root@mysql-slave~]#yum install openssh-clients

[root@mysql-master~]#scp database_05-06-2017.sql.gz  [email protected].?.202:/root


配置slave數據庫,在slave上恢復數據庫

配置slave數據庫server-id,關閉binlog日誌

[root@mysql-slave~]#cp  /usr/share/doc/mysql-server-5.1.73/my-medium.cnf /etc/my.cnf

[root@mysql-slave ~]# vi /etc/my.cnf


重啓slave虛擬機mysql,查看狀態 

#service mysqld restart

>show variables like 'log_bin';

>show variables like 'server_id';


解壓數據庫備份文件

[root@mysql-slave ~]# gzip -d database_05-06-2017.sql.gz

恢復數據庫

[root@mysql-slave ~]# mysql -u root -p <database_05-06-2017.sql

mysql>show databases;

slave數據庫上配置複製參數 ,啓動複製,驗證複製

slave上配置複製參數

>CHANGE MASTER TO MASTER_HOST='192.168.?.201', MASTER_USER='rep', MASTER_PASSWORD='123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=254;

slave上配置啓用複製

>start slave;

slave上查看複製狀態

>show slave status \G;

在master上爲數據庫temp增加記錄,在slave查看同步情況

>insert into temp.users values("zhang1","123");

>insert into temp.users values("li4","123");

>select * from temp.users;












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章