亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

MySQL數據讀寫分離MaxScale相關配置

瀏覽:3日期:2023-06-28 19:41:17
目錄一、概念:二、實現讀寫分離的拓撲圖:三、MaxScale相關配置:四、讀寫分離的配置流程:五、實操:第一步:配置Mysql服務器一主一從第二步:配置代理服務器(讀寫分離服務器)第三步:啟動讀寫分離服務第四步:測試配置讀寫分離服務的配置第五步:驗證補充說明一、概念:MySQL數據讀寫分離是存儲數據的一種服務架構執行select命令必須連接 slave角色服務器執行insert命令必須連接 maste角色服務器提供數據讀寫分離功能的中間件軟件有: mysql-proxy maxscale mycat拓撲架構只支持一主一從或者一主多從架構二、實現讀寫分離的拓撲圖:

三、MaxScale相關配置:指令/路徑/...說明maxscale-2.1.2-1.rhel.7.x86_64.rpm軟件包/etc/maxscale.cnf主配置文件maxscale /etc/maxscale.cnf啟動服務/var/log/maxscale/maxscale.log日志路徑(可查看報錯信息)4006讀寫分離服務使用端口號4016管理服務使用端口號四、讀寫分離的配置流程:配置Mysql服務器一主一從配置代理服務器(讀寫分離服務器)啟動讀寫分離服務客戶機50測試配置讀寫分離服務的配置五、實操:第一步:配置Mysql服務器一主一從把host61配置為master數據庫服務器[root@host61 ~]# vim /etc/my.cnf[mysqld]Server_id = 61log_bin=master61:wq[root@host61 ~]# systemctl restart mysqld[root@host61 ~]# mysql -uroot –p123qqq...AMysql> grant replication slave on *.* to repluser@'%' identified by '123qqq...A';Mysql> show master status ;+-----------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+-----------------+----------+--------------+------------------+-------------------+| master61.000001 | 441 | | | |+-----------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)把host62 配置為slave數據庫服務器[root@host62 ~]# vim /etc/my.cnf[mysqld]Server_id = 62:wq[root@host62 ~]# systemctl restart mysqld[root@host62 ~]# mysql -uroot -p密碼Mysql> change master to master_host='192.168.88.61' ,Master_user='repluser' , Master_password='123qqq...A' ,Master_log_file='master61.000001' ,Master_log_pos=441 ;Mysql> start slave;Mysql> show slave status \G Slave_IO_Running: Yes Slave_SQL_Running: Yes第二步:配置代理服務器(讀寫分離服務器)安裝軟件[root@host60 ~]# yum -y install maxscale-2.1.2-1.rhel.7.x86_64.rpm 修改主配置文件[root@host60 ~]# cp /etc/maxscale.cnf /root/ 備份主配置文件[root@host60 ~]# vim /etc/maxscale.cnf[maxscale]threads=auto # 服務啟動后線程的數量,根據CPU 核數創建[server1] type=serveraddress=192.168.88.61 # 指定第1臺數據庫服務器的ip地址port=3306protocol=MySQLBackend[server2] type=serveraddress=192.168.88.62 # 指定第2臺數據庫服務器的ip地址port=3306protocol=MySQLBackend[MySQL Monitor] # 定義監視的數據庫服務器type=monitormodule=mysqlmonservers=server1,server2 # 監視server1和server2user=mysqla # 監控用戶賬號passwd=123qqq...A # 監控用戶連接密碼monitor_interval=10000#禁止只讀服務(注釋)#[Read-Only Service]#type=service#router=readconnroute#servers=server1#user=myuser#passwd=mypwd#router_options=slave[Read-Write Service] # 啟用讀寫分離服務type=servicerouter=readwritesplitservers=server1,server2 # 讀寫分離在server1和server2服務器之間進行user=mysqlb # 路由用戶passwd=123qqq...A # 連接密碼max_slave_connections=100%[MaxAdmin Service] # 管理服務(通過訪問管理服務可以查看監控信息)type=servicerouter=cli# 因為只讀服務沒有啟用 ,不需要定義服務使用的端口號(注釋)#[Read-Only Listener]#type=listener#service=Read-Only Service#protocol=MySQLClient#port=4008[Read-Write Listener] # 定義讀寫分離服務使用端口號type=listenerservice=Read-Write Serviceprotocol=MySQLClientport=4006 # 端口號[MaxAdmin Listener] # 定義管理服務使用端口號type=listenerservice=MaxAdmin Serviceprotocol=maxscaledsocket=defaultport=4016 # 端口號:wq配置數據庫服務器(在數據庫服務器上添加監控用戶和路由用戶)注意:因為是主從結構 ,所以只需要在主服務器添加,從服務器會自動同步[root@host61 ~]# mysql -uroot -p123qqq...A # 添加監控用戶 mysqla 用戶mysql> grant replication slave , replication client on *.* to mysqla@'%' identified by '123qqq...A';# 權限說明:# replication client 監視數據庫服務的運行狀態 # replication slave 數據庫服務器的主從角色 # 添加路由用戶 mysqlb 用戶mysql> grant select on mysql.* to mysqlb@'%' identified by '123qqq...A'; # 對授權庫下的表有查詢權限# 在從服務器查看用戶是否同步[root@host62 ~]# mysql -uroot -p123qqq...A select user from mysql.user where user='mysqla';select user from mysql.user where user='mysqlb';第三步:啟動讀寫分離服務驗證數據庫服務器的授權用戶 mysqla 和 mysqlb# 安裝提供mysql命令的軟件[root@host60 ~]# which mysql || yum -y install mariadb [root@host60 ~]# mysql -h192.168.88.61 -umysqla -p123qqq...A[root@host60 ~]# mysql -h192.168.88.62 -umysqla -p123qqq...A[root@host60 ~]# mysql -h192.168.88.61 -umysqlb -p123qqq...A[root@host60 ~]# mysql -h192.168.88.62 -umysqlb -p123qqq...A# 說明:能連接成功才是對的,如果連接失敗:執行如下操作# 在主數據庫服務器host61 把添加 mysqla用戶 和 mysqlb 用戶的命令再執行一遍# 啟動服務 [root@host60 ~]# maxscale /etc/maxscale.cnf # 查看日志文件[root@host60 ~]# ls /var/log/maxscale/ maxscale.log # 查看讀寫分離服務端口號[root@host60 ~]# netstat -utnlp | grep 4006 tcp6 0 0 :::4006 :::* LISTEN 1580/maxscale # 查看讀寫分離服務端口號[root@host60 ~]# netstat -utnlp | grep 4016 tcp6 0 0 :::4016 :::*LISTEN 1580/maxscale #把服務殺死 再啟動 相當于重啟服務 (修改了配置文件后要重啟服務使其配置生效)# 通過殺進程的方式停止服務 [root@host60 ~]# killall -9 maxscale # 啟動服務[root@host60 ~]# maxscale /etc/maxscale.cnf # 在host60本機訪問管理服務查看數據庫服務的監控信息[root@host60 ~]# maxadmin -uadmin -pmariadb -P4016MaxScale> list serversServers.-------------------+-----------------+-------+-------------+--------------------Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+--------------------server1 | 192.168.88.61 | 3306 | 0 | Master, Runningserver2 | 192.168.88.62 | 3306 | 0 | Slave, Running-------------------+-----------------+-------+-------------+--------------------MaxScale> exit 排錯方法 : 查看日志里的報錯信息 vim /var/log/maxscale/maxscale.log第四步:測試配置讀寫分離服務的配置客戶端能夠連接讀寫分離服務器訪問數據庫服務# 首先在主數據庫服務器host61 添加客戶端連接使用的用戶[root@host61 ~]# mysql -uroot -p密碼 create database bbsdb;create table bbsdb.a(id int);grant select,insert on bbsdb.* to yaya@'%' identified by '123qqq...A';# 在從服務器host62查看存儲數據庫表和添加用戶[root@host62 ~]# mysql -uroot -p密碼desc bbsdb.a;select user from mysql.user where user='yaya';# 客戶端host50連接讀寫分離服務器host60訪問數據庫服務mysql -h讀寫分離服務器的ip -P讀寫分離服務的端口號 -u數據庫授權用戶名 -p密碼 [root@host50 ~]# mysql -h192.168.88.60 -P4006 -uyaya -p123qqq...A 連接讀寫分離服務后,可以對數據做查詢和存儲操作mysql> select * from bbsdb.a;Empty set (0.00 sec)mysql> insert into bbsdb.a values(8888);Query OK, 1 row affected (0.06 sec)mysql> select * from bbsdb.a;+------+| id |+------+| 8888 |+------+1 row in set (0.00 sec)第五步:驗證怎么驗證查詢select 訪問就在host62從服務器獲取的數據呢?在從服務本機向表里添加1條記錄(在從服務添加的新數據主服務器不會同步)# 從服務器插入1條數據[root@host62 ~]# mysql -uroot -p123qqq...A -e 'insert into bbsdb.a values(6262)'[root@host62 ~]# mysql -uroot -p123qqq...A -e 'select * from bbsdb.a'mysql: [Warning] Using a password on the command line interface can be insecure.+------+| id |+------+| 8888 || 6262 |+------+# 主服務器查詢[root@host11 ~]# mysql -uroot -p123qqq...a -e 'select * from bbsdb.a'mysql: [Warning] Using a password on the command line interface can be insecure.+------+| id |+------+| 8888 |+------+# 客戶端訪問讀寫分離服務器查詢數據(查詢結果為從服務器數據源)[root@host50 ~]# mysql -h192.168.88.60 -P4006 -uyaya -p123qqq...A -e 'select * from bbsdb.a'mysql: [Warning] Using a password on the command line interface can be insecure.+------+| id |+------+| 8888 || 6262 |+------+怎么驗證存儲數據insert 訪問 就是存儲在了主機服務器host61上?# 客戶端機插入數據[root@host50 ~]# mysql -h192.168.88.60 -P4006 -uyaya -p123qqq...A -e 'insert into bbsdb.a values(666)' # 在主服務器本機查看數據[root@host61 ~]# mysql -uroot -p123qqq...a -e 'select * from bbsdb.a'mysql: [Warning] Using a password on the command line interface can be insecure.+------+| id |+------+| 8888 || 666 |+------+[root@host50 ~]# mysql -h192.168.88.60 -P4006 -uyaya -p123qqq...A -e 'select * from bbsdb.a'mysql: [Warning] Using a password on the command line interface can be insecure.+------+| id |+------+| 8888 || 6262 || 666 |+------+還可以通過查看主服務器的position是否在客戶端服務器插入數據后改動來確定是不是在主服務器中進行操作過數據補充說明如果主從結構中的從服務器宕機了,就實現不了讀寫分離了,會把讀寫請求都給主服務器處理。如果主從結構中的主服務器宕機了,讀寫分離服務無法訪問

以上就是MySQL數據讀寫分離MaxScale相關配置的詳細內容,更多關于MySQL數據讀寫分離MaxScale的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
主站蜘蛛池模板: 亚洲国产精品第一区二区 | 动漫男女交性动漫网站 | 欧美黄色大片 | 嫩草视频网站 | 国产精品原创巨作av | 视频二区在线观看 | 色播激情网 | 色综合网亚洲精品久久久 | 久久久久久久九九九九 | 免费影院| 日韩一级特黄毛片在线看 | 国产欧美精品专区一区二区 | 国产国产成人久久精品杨幂 | 广东东莞一级毛片免费 | 精品国产一二三区 | 性色生活片 | 99在线精品日韩一区免费国产 | 欧美日韩亚洲精品国产色 | 麻豆日韩区久久综合 | 午夜亚洲精品久久久久 | 在线观看91精品国产hd | 日韩视频在线观看中字 | 欧美特级毛片a够爽 | 成年性羞羞视频免费观看无限 | 国产精品品福利视频 | 国产一二三四五路线 | 国产草比 | 免费高清资源黄网站在线观看 | 中国一级黄色大片 | 天天综合亚洲国产色 | 特黄a三级三级三级 | 精品三级久久久久久久电影 | 夜夜爽影院| 成年女人毛片免费视频 | 国内自拍视频一区二区三区 | 青草草在线观看免费视频 | 91看视频| 色婷婷综合久久久中文字幕 | 国产精品亚洲第一区在线28石 | 久久精品夜色国产 | 国产成人国产在线观看入口 |