mysql本身主从_Mysql主从复制
Mysql環境準備
#下載Mysql
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
如果報錯: -bash: wget: 未找到命令
安裝插件 yum -y install wget
安裝mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安裝Mysql
sudo yum install mysql-server
一直y下去就可以了
配置Mysql
mysql -u root
報錯。原因:原因是/var/lib/mysql的訪問權限問題。
#授權
chown root /var/lib/mysql/
#重啟
service mysqld restart
#再次登錄并修改密碼
mysql -u root
use mysql;
update user set password=password('123456') where user='root';
exit;
#再次重啟,授權root可以遠程連接
service mysqld restart
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
service mysqld restart
Mysql主從復制原理
MySQL的主從復制是MySQL本身自帶的一個功能,不需要額外的第三方軟件就可以實現。其復制功能并不是copy文件來實現的,而是借助binlog日志文件里面的SQL命令實現的主從復制,可以理解為我在Master端執行了一條SQL命令,那么在Salve端同樣會執行一遍,從而達到主從復制的效果。從庫生成兩個線程,一個1/0線程、一.個SQL線程。i/o線程去請求主庫的binlog,并將得到的binlog日志寫到relay log (中繼日志)文件中。主庫會生成一個log dump線程,用來給從庫i/o線程傳binlog;SQL線程,會讀取relay log文件中的日志,并解析成具體操作,來實現主從的操作一致,而最終數據一致。
主從復制搭建
配置主節點
vi /etc/my.cnf
server_id=131 ###服務器id
log-bin=mysql-bin ###開啟日志文件
#保存之后重啟
service mysqld restart
#查詢對應配置文件中的server_id 說明已經配置成功
show variables like '%server_id%';
#看到同步的文件,和行數 說明已經配置成功。
show master status;
從節點配置
vi /etc/my.cnf
server_id=132 ###從服務器server_id
log-bin=mysql-bin ###日志文件同步方式
binlog_do_db=test,test1 ###同步數據庫,多個以逗號分隔
service mysqld restart
從節點同步主節點
master_host:主節點IP
master_user :主節點賬號
master_password:密碼
#這兩個參數的配置是在主節點通過show master status;查詢到的
master_log_file
master_log_pos
#執行sql
CHANGE MASTER TO master_host = '192.168.100.131',
master_user = 'root',
master_password = 'root',
master_log_file = 'mysql-bin.000001',
master_log_pos = 120;
因為從節點的服務器是直接復制的主節點,所有可能會出現一個錯誤
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.。是因為UUID重復了.刪除子節點的auto.cnf就可以了
解決辦法:
#找到Mysql的位置
cat /etc/my.cnf
cd /var/lib/mysql
rm -rf auto.cnf
service mysqld restart
#開始同步
start slave
#查看同步狀態
SHOW SLAVE STATUS
效果演示
在主節點創建test數據庫,在創建一個表,子節點會自動同步
刷新一下從節點
總結
以上是生活随笔為你收集整理的mysql本身主从_Mysql主从复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信理财通怎么玩?微信理财通靠谱吗?
- 下一篇: 工行信用卡如何分期还款 分期手续费你必须