日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL主从布署

發布時間:2025/5/22 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL主从布署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

MySQL主從布署

零、引入

作為一個架構師,連MySQL主從布署、讀寫分離都不懂是說不過去的。

呃,在寫這篇文章之前,我的確是沒做過這方面的東西。一直都在做系統分析及實現,所以有數據庫直連即可,一直以為到部署之后運營一段時間再作調整。

其實并不是這樣,往往底層的設計決定實現的方式。就這個MySQL主從吧,也有著讀寫分離的意味,寫一個數據庫,讀可以是多個數據庫。所以上層使用JPA、Hibernate這類的ORM框架就無法很好的工作——因為它個都認為讀寫是同一個數據庫。

所以,有時還是要從下往上看,這是架構師的基本能力。

一、準備

1. 準備虛擬主機

安裝兩臺虛擬主機,IP信息如下:

192.168.122.20 mysql-primary # 主庫 192.168.122.21 mysql-secondary # 從庫

2. 安裝MySQL

我是在Ubuntu 18.04 server上安裝MySQL的,奇怪的是從Ubuntu 18.04開始,MySQL的安裝有所不同,所以這里就說明一下:

# 安裝 $ sudo apt install mysql-server# 初始配置服務器 $ sudo mysql_secure_installation# 登錄服務器測試一下 - 注意,必須是sudo,否則就算輸入的密碼是正確的也連不上去。 $ sudo mysql -u root -p

3. 配置/etc/hosts

這里配置這個主要是方便認知,如果用IP進行配置的話,一串串數字真的很容易出錯,于是就編輯/etc/hosts,以方便認知服務器:

192.168.122.20 mysql-primary 192.168.122.21 mysql-secondary

二、配置主服務器

1. 先登上MySQL服務器

$ sudo mysql -u root -p

2. 準備用戶

# 添加用戶同步的用戶,并賦予訪問所有功能的權限 mysql> CREATE USER repl; mysql> GRANT ALL ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_password';# 為root用戶添加遠程訪問數據庫的能力,方便測試數據(這一步并不是必須的) mysql> GRANT ALL ON *.* TO 'root'@'%';

3. 配置服務器

編輯mysql配置文件,在Ubuntu中,文件路徑為:/etc/mysql/mysql.conf.d/mysqld.cnf:

# 在[mysqld]下面增加下面代碼# 數據主唯一標識,一般為本機IP最后一個數字,這里是20 server-id=20# 開啟binlog log-bin=master-bin log-bin-index=master-bin.index # 找到 bind-address = 127.0.0.1,將其改成以下代碼,使服務器可以接受遠程訪問: bind-address = 0.0.0.0

4. 測試服務器配置

重啟服務器:

$ sudo service mysql restart

登錄服務器:

$ mysql -u root -h mysql-primary -p $ mysql -u repl -h mysql-primary -p

查看binlog是否已工作:

mysql> SHOW MASTER STATUS;# 一般情況下會出現下面的輸出: +-------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | master-bin.000001 | 1285 | | | +-------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)

三、配置從服務器

1. 先登上MySQL服務器

$ sudo mysql -u root -p

2. 準備用戶

# 為root用戶添加遠程訪問數據庫的能力,方便測試數據(這一步并不是必須的) mysql> GRANT ALL ON *.* TO 'root'@'%';

3. 配置服務器

編輯mysql配置文件,在Ubuntu中,文件路徑為:/etc/mysql/mysql.conf.d/mysqld.cnf:

# 在[mysqld]下面增加下面代碼 # 數據主唯一標識,一般為本機IP最后一個數字,這里是21 server-id=21 # 找到 bind-address = 127.0.0.1,將其改成以下代碼,使服務器可以接受遠程訪問: bind-address = 0.0.0.0

重啟服務器

$ sudo service mysql restart

連上MySQL,配置從服務器并啟用:

mysql> CHANGE MASTER TO master_host='mysql-primary',master_port=3306,master_user='repl',master_password='repl_password',master_log_file='master-bin.000001',master_log_pos=0; mysql> start slave;

master_log_file 是主服務器上執行SHOW MASTER STATUS獲取的主MySQL的binlog信息。

查看slave是否已工作:

mysql> SHOW SLAVE STATUS\G;# 輸出類似以下情形: *************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: mysql-primaryMaster_User: rootMaster_Port: 3306Connect_Retry: 60Master_Log_File: master-bin.000002Read_Master_Log_Pos: 922Relay_Log_File: mysql-secondary-relay-bin.000002Relay_Log_Pos: 1089Relay_Master_Log_File: master-bin.000002Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 922Relay_Log_Space: 1306Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 20Master_UUID: 8f9360b6-4fc7-11e8-bf34-525400c8c952Master_Info_File: /var/lib/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: 1 row in set (0.00 sec)

四、測試

配置好了,那就測試一下:

  • 主服務器添加數據庫,查看從服務器是否也添加了。
  • 主服務器添加數據表,并添加數據,查看從服務器是否已同步。
  • 主服務器刪除庫或者表,查看從服務器的情況是否也同樣同步。
  • 五、結語

    這里配置好了主從,但是并沒有做高可用,嗯,下一個攻擊點,MySQL高可用。

    轉載于:https://my.oschina.net/kut/blog/1807414

    總結

    以上是生活随笔為你收集整理的MySQL主从布署的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 五月天激情丁香 | 天天看夜夜爽 | 国产又大又粗又爽 | 久久国产精品一区二区 | 少妇视频一区 | 久久精品视频6 | 国产精品福利导航 | 午夜视频www | 欧美成人xxx| 五月天社区| 欧美一区二区三区爽爽爽 | 伊人一级片 | 69免费| 福利视频免费 | 精品中文字幕视频 | 波多野吉衣一区二区三区 | 久久久久久久麻豆 | 欧美日韩精品一区二区在线播放 | 欧美男人天堂 | 夜色资源网 | 在线观看视频一区二区三区 | 91调教视频 | 美女网站在线免费观看 | 制服诱惑一区二区 | 亚洲激情综合网 | 五月激情丁香 | 中国美女一级黄色片 | 日本一级大片 | 丰满少妇麻豆av苏语棠 | 国产精品成人免费看片 | 狠狠欧美 | 禁欲天堂 | 中文字幕精品一区 | 午夜啊啊啊 | 日本黄色一级 | 尤物网站在线 | 成人一区二区在线观看 | 天天天天色 | 亚洲天堂中文字幕在线观看 | 日韩精选 | 欧美精品成人久久 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美色综合天天久久综合精品 | www.17c.com喷水少妇 | 久久久久久香蕉 | 中文字幕av在线免费观看 | 亚洲男女啪啪 | 日韩免费一区二区三区 | 2023毛片 | 黄金网站在线观看 | 丁香花高清在线观看完整动漫 | 17c在线观看 | 三级黄色网络 | 国产做受91 | 波多野结衣毛片 | 被各种性器调教到哭vk | 人人爽夜夜爽 | 国产精品v日韩精品v在线观看 | 亚洲色图14p | 国内自拍真实伦在线观看 | 午夜资源| 久久丫精品国产亚洲av不卡 | 97精品视频在线 | 亚洲 欧美 日韩 在线 | 亚洲乱色熟女一区二区三区 | 国产传媒精品 | 色淫湿视频 | 免费小视频在线观看 | 玩偶姐姐在线观看免费 | 奇米视频在线观看 | 高清国产在线 | 国产免费久久精品国产传媒 | 国产精品久久久久久妇女6080 | 国产精品视频一区二区三 | 欧美黑人又粗又大的性格特点 | 色视频一区二区 | 成人欧美一级特黄 | 在线日韩成人 | 欧美日韩一区二区三区在线 | 黄色一级视频在线观看 | 伊人激情视频 | 亚洲毛片在线看 | 黄色片网站大全 | 日韩高清在线一区二区 | 美女插插| 亚洲福利视频一区二区三区 | 午夜精品在线视频 | 午夜窝窝| 自拍偷拍国产 | 女人色极品影院 | 性生活视频软件 | 激情xxxx | 免费啊v在线观看 | 国产观看 | 小罗莉极品一线天在线 | 国产精品制服诱惑 | 天天天天| 日韩成人在线观看 | 中文字幕一区二区在线观看 |