上次做完windows下的主從復制,這回是linux的從機配置,直接上內容
主機:windows下的mysql
從機:linux下的mysql
一、linux安裝mysql
1.查看系統是否安裝mysql:rpm -qa | grep mysql
2.下載mysql資源包:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
(1)如果報錯:bash: wget: command not found 未找到wget命令 需要安裝
(2)安裝wget:yum -y install wget
3.安裝下載的包:sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
4.安裝mysql:yum install mysql-server
5.用root登錄mysql -u root
(1)報錯:error 2002 (HY000):Can.... 原因是:/var/lib/mysql 的訪問權限問題
(2)chown root /var/lib/mysql/ 設置權限
(3)service mysqld restart 重啟服務
6.進入mysql庫中:use mysql;
7.設置密碼:update user set password=password('123456') where user = 'root';
8.設置root賬戶遠程鏈接:GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
9.關閉防火牆:systemctl stop firewalld.service (允許外網訪問,正常是開放端口)
到此mysql安裝完畢
主機配置跟上一篇文章內容一樣(注意賬號和權限問題)
二、配置從機my.cnf
首先要在從機上有跟主機上一樣的要復制的數據庫
1.輸入命令:vi /etc/my.cnf mysql默認配置文件放在etc下
2.進入之后按 i 開啟編輯模式
在[mysqld] 下面添加:
#從數據庫配置
server_id=2
log-bin=mysql-bin
按esc 然后 :wq 保存退出
3.上面配置好了 我們進入mysql
mysql -uroot -p123456
4、然后主從復制的創建賬號密碼 (這個賬號密碼要與主庫保持一致)
grant all privileges on *.* to 'test'@'%' identified by 'yujie' with grant option;
5.slave
與 master
建立連接,進行數據同步 master_host 主機ip; master_user 賬號;master_password 密碼;master_log_file、master_log_pos 都是在主機獲取的
change master to master_host='192.168.1.18',master_user='test',master_password='yujie', master_log_file='mysql.000006',master_log_pos=937;
6.重啟mysql 進入mysql 輸入:
show slave status \G;
Slave_IO_Running: Yes Slave_SQL_Running: Yes以上兩項都為Yes說明配置成功。
注意:
如果 Slave_IO_Running :Connecting
要檢查幾個方面:
1.主機從機之間是否能 ping 通 ip
2.從機賬號權限是否正確,可以訪問到主機
3.防火牆
4.還有就是我遇到的問題 把從機的配置放到了 [mysqld_safe] 下
更多Connecting問題參考:https://www.cnblogs.com/powerwu/articles/11381736.html
如果:Slave_IO_Running :No
原來是我兩台虛擬機的是直接復制過來的,mysql是的datadir下的auto.cnf文件被直接復制過來了,導致UUIDs相等,所以無法開啟slave;我們只要保證auto.cnf文件里的內容不一致就行了
master_log_file與master_log_pos這個的值 在主機進入mysql命令行輸入
show slave status \G;
如果從數據庫讀取報錯(比如從數據庫做了寫操作,導致讀取執行日志文件失敗,主從復制會失效)
需要重啟從數據庫
關閉: stop slave;
啟動:start slave;
加QQQ群一起交流: 829707388