1. 程式人生 > >劍指架構師系列-MySQL的安裝及主從同步

劍指架構師系列-MySQL的安裝及主從同步

use 回車 ant arc 使用 ttl stat 解鎖 reload

1、安裝數據庫

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

安裝時使用root用戶權限。安裝成功後即可進行啟動:

/bin/systemctl restart mysqld.service

修改MySQL數據庫root用戶的密碼,如下:

mysql -u root
mysql> set password for ‘root’@‘localhost’ = password(‘你要設置的密碼‘);
mysql> exit
mysql -u root -p // 回車後輸入密碼即可

退了後重新使用用戶名和密碼登錄即可。 

遠程授權連接mysql 

GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘mypassword‘ WITH GRANT OPTION;
FLUSH   PRIVILEGES;

查看MySQL的進程PID

netstat -anp|grep 3306|awk ‘{printf $7}‘|cut -d/ -f1

MySQL隨系統自啟動

/bin/systemctl enable mysqld

  

2、數據庫主從同步

主:master---192.168.0.147

從:slave1---192.168.0.248

在master主庫上操作:

mysql -uroot   // 在安裝時用戶名為root 密碼默認為空
// 創建數據庫
mysql>CREATE DATABASE IF NOT EXISTS cattle COLLATE=‘utf8_general_ci‘ CHARACTER SET=‘utf8‘;
// 格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"; 
mysql>GRANT ALL ON cattle.*TO ‘cattle‘@‘%‘ IDENTIFIED BY ‘cattle‘;
mysql>GRANT ALL ON cattle.*TO ‘cattle‘@‘localhost‘ IDENTIFIED BY ‘cattle‘;
// 創建用戶
mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO [email protected]‘192.168.0.248‘ IDENTIFIED BY ‘123456‘;
mysql>flush  privileges;

  

對/etc/my.cnf配置文件進行修改,在[mysql]下添加如下配置後重啟MyQL。

server-id = 1
log-bin=mysql-bin
log-slave-updates=cattle
binlog-do-db=cattle
binlog-ignore-db=mysql

鎖主庫後打包主庫,然後解鎖主庫即可。

mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

#cd /var/lib/mysql
#tar czvf  cattle.tar.gz cattle

mysql> UNLOCK TABLES;

然後傳輸cattle.tar.gz到192.168.0.248上,如下:

scp /var/lib/mysql/cattle.tar.gz  [email protected]:/var/lib/mysql/cattle.tar.gz  

 

在slave1從庫上操作:

修改文件cattle.tar.gz權限,如下:

#chown -R /var/lib/mysql/mysql:mysql cattle

修改/etc/my.cnf配置文件,在[mysql]下面增加如下配置:

server-id =2
log_bin=mysql-bin
relay_log=mysql-relay-bin
read-only=1
replicate-do-db=cattle
log-slave-updates=1

重啟MySQL後進行驗證。

mysql -h192.168.0.147 -uslave1 -p123456
show grants for [email protected];

在master上查看File與Position:

mysql -ucattle -pcattle
mysql>SHOW  MASTER STATUS\G;

如下:

技術分享

可以看到兩個屬性的值。

到 slave1主機下

mysql -uroot
stop slave
mysql>CHANGE MASTER TO MASTER_HOST=‘192.168.0.147‘,         
MASTER_USER=‘slave1‘,         
MASTER_PASSWORD=‘123456‘,         
MASTER_LOG_FILE=‘mysql-bin.000006‘,         
MASTER_LOG_POS=1018;  
start slave

然後查看slave狀態,如下:

技術分享

觀察Slave_IO_Running與Slave_SQL_Running參數都為yes。

在master主機下操作,如下:

技術分享

下面就可以進行同步測試了。

參考文章:http://www.phperz.com/article/15/1113/169027.html

官方文檔:http://dev.mysql.com/doc/refman/5.6/en/replication-howto-slaveinit.html

  

  

  

劍指架構師系列-MySQL的安裝及主從同步