當前位置:首頁 > 資訊教程 > 技術欄目 > MYSQL如何做主從的復制?

MYSQL如何做主從的復制?

來源:網絡整理 2019-06-21 0人評論
當網站并發量大時,最先扛不住的可能是數據庫了。所以需要多臺服務器進行分擔壓力。這時會用到mysql主從同步,把mysql服務器數據分到多臺服務器中。
mysql5.7主從(Master/Slave)同步配置
 
Master的配置
修改/etc/my.cnf
 
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
ft_min_word_len=1
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/slow.log
long_query_time=2
 
 
log-bin=mysql-bin
log-bin=/usr/local/mysql/var/mysql-bin.log      #日志存放地址文件
server-id=1     #必須唯一值
binlog-do-db=庫名1      #需要同步的數據庫
binlog-do-db=庫名2      #需要同步的數據庫
expire_logs_days = 10       #日志保存天數
early-plugin-load = ""
 
第一種方法
#創建同步帳號
grant replication slave on *.* to '同步帳號名'@'允許ip' identified by '密碼';
#刷新權限
flush  privileges;
 
第二種方法
#創建同步帳號也可以通過phpmyadmin來創建權限帳號;
全局權限可以全選;也可以只勾選 REPLICATION SLAVE  權限
 
 
#鎖住主庫表只允許讀;主要是以防導出數據庫的時候有新數據進來導致主從庫不一致
flush tables with read lock;
 
#查看主服務器上當前的二進制日志名和偏移量值這里的file 和position 要和從庫上的一致;記錄住從庫配置時需要用到
show master status\G
 
 
#退出mysql進行導出需要同步的數據庫;如果加 -l -F參數    -l:鎖定表,直至導出完成自行解鎖;-F:備份前刷新日志。
 
/usr/local/mysql/bin/mysqldump -u root -p"密碼" 數據庫名 > /root/backup.sql
 
 
#解鎖主庫表
unlock tables;
 
 
 
從庫配置
 
導入主庫備份好的數據庫
 
/usr/bin/mysql -u root -p"密碼" 數據庫名 < /root/backup.sql
 
 
修改配置
vi /etc/my.cnf
 
 
log-bin=mysql-bin
log-bin=/usr/local/mysql/var/mysql-bin.log      #日志存放地址文件
server-id=2     #必須唯一值
binlog-do-db=庫名1        #需要同步的數據庫
binlog-do-db=庫名2        #需要同步的數據庫
binlog_format=mixed         #日志類型:混合模式
expire_logs_days = 10       #日志保存天數
early-plugin-load = ""
slave-skip-errors=1032      #跳轉1032錯誤;即不存的數據更新
 
 
#登錄mysql進行配置修改
 
mysql> stop slave;
mysql> change master to
-> master_host='192.168.1.10', #master的ip
-> master_user='backup', #備份用戶名
-> master_password='123456', #密碼
-> master_log_file='mysql-bin.000010', #要與master的參數一致
-> master_log_pos=154; #要與master的參數一致
mysql> start slave; #啟動從機器

 
mysql> show slave status\G
 
 
注意事項
 
如果從服務器是克隆的主服務器,那么server-uuid的值肯定是一樣的,不然后面主從復制報錯誤1593,修改以后重啟mysql
 
首先要查找到mysql的安裝地址
show variables like 'datadir';
 
+---------------+-----------------+
| Variable_name | Value   |
+---------------+-----------------+
| datadir  | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)
 
//然后通過mysql生成一個uuid進行記錄等會用于修改
select uuid()
 
+--------------------------------------+
| uuid()        |
+--------------------------------------+
| 2674149f-5083-11e8-be4b-080027a1f331 |
+--------------------------------------+
 
然后進入datadir目錄
cd /var/lib/mysql/
vi auto.cnf
//修改server-uuid
 
重啟mysql
service mysqld restart
相關閱讀
期待你的留言
已有( 0 )條評論
昵稱 *
郵箱

*驗證碼: 驗證碼

快評短語
寫的太好了,正好為我解惑 小編努力,可以寫的更好! 無感覺,然并卵 一般般,不詳細 還不錯,希望能更好 沒啥事,就來灌一下水 失望,還以為找到自己需要的 還有其它的嗎?
推薦下載
熱門下載
  • 周排行
  • 月排行
三肖中特期期准免费一