1.最小白安裝linux版的mysql5.7
準備主機:192.168.31.202
從機:192.168.31.203
cd /usr/local/
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld.service #啓動mysql
下面進行修改密碼
grep "password" /var/log/mysqld.log #查看原始密碼
cd /usr/bin/
./mysql -uroot -p #回車後提示輸入原始密碼
mysql>
ALTER
USER
'root'
@
'localhost'
IDENTIFIED
BY
'new password'
;
如果提示說密碼過於簡單,報錯無法通過
我們可以修改規則:
mysql>
set
global
validate_password_policy=0;
mysql>
set
global
validate_password_length=1;
然後再次執行上面修改root的密碼即可
2.配置主機和從機的my.cnf配置文件
在主機 192.168.31.202 編輯 /etc/my.cnf 文件
nano /etc/my.cnf
加上以下配置
server-id=1 #指定服務器id
log-bin=mysql-bin #啓動二進制日誌
binlog-ignore-db=mysql #不要複製的數據庫
binlog-ignore-db=information_schema #不要複製的數據庫
binlog-do-db=testdb #要複製的數據庫
binlog_format=STATEMENT
在從機 192.168.31.203 編輯 /etc/my.cnf 文件
加上以下配置
nano /etc/my.cnf
server-id=2
relay-log=mysql-relay
3.在主機的mysql創建slave用戶
在主機登錄mysql
./mysql -uroot -proot
mysql> select user,host from mysql.user; #查看有哪些用戶,我們發現並沒有slave用戶,於是創建它
mysql> set global validate_password_policy=0; #設定密碼規則
mysql> set global validate_password_length=1; #設定密碼規則
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave'; #用戶和密碼都是slave
mysql> grant replication slave on *.* to 'slave'@'%' identified by 'slave'; #授權slave用戶允許被複制
mysql> show master status; (查看File字段的值:mysql-bin.000002 , position字段的值:684)
要把file字段和position字段的內容記下來,從機要用上它
4.在從機上的配置
./mysql -uroot -proot
###下面語句,其中192.168.31.202是主機的ip,用戶和密碼都是slave,最後兩個屬性就是從主機中獲取的字段值
mysql> CHANGE MASTER TO MASTER_HOST='192.168.31.202',
MASTER_USER='slave',
MASTER_PASSWORD='slave',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=684;
如果報錯:this operation cannot be performed with a running slave thread。。。。
那麼執行下面語句:
mysql> stop slave;
mysql> reset master;
然後再次執行CHANGE MASTER TO 。。。。。這寫代碼
接下來開啓slave
mysql> reset slave;
mysql> start slave;
然後查看是否完成主從複製
mysql> show slave status\G;
如果發現這兩個屬性都是yes,那麼恭喜你,主從複製配置成功
主機只負責插入數據,從機只負責讀取數據。
從機插入數據是無法同步到主機的
以此類推,一主多從可以實現
接下來第二章學習mycat中間件的配置