mysql native数据同步_记一次MySQL(5.7版本)数据库的主从同步和备份
我遇到的問題
我先后在BAT三大云服務器商購買了學生機,配置如下百度云2核/4G
阿里云1核/2G
騰訊云1核/2G
我的解決方案
由于我不知道百度云的續費規則,導致買了2核/4G的服務器之后以為像阿里和騰訊的一樣可以原價續費,就把我的個人博客相關的東西都部署在了百度云上面。然后我就想著快發工資了,看看怎么續費百度云,結果發現這款學生機只有一個月的使用時間,所以,我不得不另尋他法。在確定了阿里云和騰訊云是支持符合學生身份期限內可以原價續費之后,我決定把博客遷移到這兩臺機器上。為了能防止其中一個突然到期,來不及遷移,或者說為了避免再次遷移的麻煩,我決定在阿里云和騰訊云上各自部署一個mysql,做主從。
我預期的架構
其中兩個主機共享一個保存博客數據的文件,通過nfs掛載的方式共享同一文件夾,訪問時通過nginx做負載均衡。
# 服務端客戶端都執行
yum install rpc-bind
yum install nfs-utils
# 服務端
vim /etc/exports
/root/.halo (rw,no_root_squash)
# 客戶端
mount -t nfs 101.132.174.XX:/root/.halo /root/.halo
然后我發現打好的博客jar包里會在數據庫中存儲ip信息,導致兩個博客打開的內容都指向一個ip,從而產生錯誤,無法完成這個架構。又懶得從新修改打包等等,故而放棄了這個架構。
最終采用的架構
打包/docker/mysql/data下的數據復制并解壓到騰訊云和阿里云的/docker/mysql/data下
阿里云主my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
log-bin=mysql-bin # 開啟binlog
binlog-format=ROW # 選擇ROW模式
server_id=1
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
騰訊云從my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
log-bin=mysql-bin # 開啟binlog
binlog-format=ROW # 選擇ROW模式
server_id=2 # server_id不要重復
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
在主上查詢當前mysql狀態:
show master status;
進入從容器中登錄mysql:
CHANGE MASTER TO MASTER_HOST='101.132.174.XX',MASTER_USER='root',MASTER_PASSWORD='XXX',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=154;
start slave;
show slave status\G;
至此,完成了我的博客系統遷移工作。
遇到的問題mysql uuid 重復,進入其中一個數據庫,刪除掉auto.cnf再重啟mysql就行了。
我用的mysql是docker掛載的方式,具體如何在docker中跑mysql和掛載文件,在我的另一篇文章里有詳細描述。點此跳轉
總結
以上是生活随笔為你收集整理的mysql native数据同步_记一次MySQL(5.7版本)数据库的主从同步和备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vant引入组件报错_强烈推荐优秀的Vu
- 下一篇: 十进制数转换为二进制数