Atlas安裝配置

来源:https://www.cnblogs.com/cypress/archive/2018/03/22/8624844.html
-Advertisement-
Play Games

準備環境 官方鏈接:https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E5%AE%89%E8%A3%85 主從搭建:http://www.cnblogs.com/cypress/p/8610279.html 一、配置主從資料庫訪問連接 開啟對 ...


準備環境

 

192.168.1.1(Altas)
192.168.1.2(MySQL主)
192.168.1.3(MySQL從)

 

官方鏈接:https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E5%AE%89%E8%A3%85

主從搭建:http://www.cnblogs.com/cypress/p/8610279.html

 

一、配置主從資料庫訪問連接

 

#依次設置主庫,從庫允許Atlas訪問連接
mysql>GRANT FILE ON *.* TO 'root'@'192.168.1.1' IDENTIFIED BY 'root password';   #創建用戶

#或者
mysql> grant all on *.* to root@'127.0.0.1' identified by "root";  #創建用戶
# 進入資料庫
mysql> use mysql
# 修改host許可權為"%"
mysql> update user set host = '%' where user = 'root';

以上兩種方式任意一種均可
mysql>select host ,user ,password from mysql.user;  #查看是否修改成功
mysql>FLUSH PRIVILEGES;   #更新資料庫信息,否則需要重啟資料庫

 

  開啟對應埠:http://blog.csdn.net/u011846257/article/details/54707864

 

二、安裝Atlas

    註意事項:

(1).Atlas只能安裝運行在64位的系統上。

(2).Centos 5.X安裝 Atlas-XX.el5.x86_64.rpm,Centos 6.X安裝Atlas-XX.el6.x86_64.rpm。

(3).如果執行安裝rpm -ivh Atlas-2.2.1.el6.x86_64.rpm出現下麵錯誤說明已經安裝

Preparing... ########################################### [100%]
package Atlas-2.2.1-1.x86_64 is already installed

使用[root@localhost ~]# rpm -qa|grep Atlas  // 查詢出來已安裝的Atlas

[root@localhost ~]# rpm -e --nodeps 文件名  // 卸載Atlas,文件名為上述命令查詢出來的文件 (4).後端mysql版本應大於5.1,建議使用Mysql 5.6   1.下載安裝包
[root@localhost ~]# cd /home/
[root@localhost home]# wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm

2.安裝

[root@localhost home]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:Atlas                  ########################################### [100%]

 安裝地址

[root@localhost home]# ll /usr/local/mysql-proxy/
total 16
drwxr-xr-x. 2 root root 4096 Dec 28 10:47 bin  #bin目錄下放的都是可執行文件
drwxr-xr-x. 2 root root 4096 Dec 28 10:47 conf  #conf目錄下放的是配置文件
drwxr-xr-x. 3 root root 4096 Dec 28 10:47 lib  #lib目錄下放的是一些包,以及Atlas的依賴
drwxr-xr-x. 2 root root 4096 Dec 17  2014 log  #log目錄下放的是日誌,如報錯等錯誤信息的記錄

3.給連接的主從資料庫用戶密碼加密並記錄

[root@localhost bin]# cd /usr/local/mysql-proxy/bin/
[root@localhost bin]# ./encrypt root

4.配置Atlas,使用vim進行編輯

[root@localhost conf]# cd /usr/local/mysql-proxy/conf/
[root@localhost conf]# vim test.cnf

進入後配置信息如下,更多參考官網

 

###1.配置範例及說明如下:
[mysql-proxy]
(必備,預設值即可)管理介面的用戶名
admin-username = user
(必備,預設值即可)管理介面的密碼
admin-password = pwd
(必備,根據實際情況配置)主庫的IP和埠
proxy-backend-addresses = 192.168.0.12:3306
(非必備,根據實際情況配置)從庫的IP和埠,@後面的數字代表權重,
proxy-read-only-backend-addresses = 192.168.0.13:3306,192.168.0.14:3306 (必備,根據實際情況配置)用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程式encrypt加密, 用戶名與密碼之間用冒號分隔。主從資料庫上需要先創建該用戶並設置密碼
(用戶名和密碼在主從資料庫上要一致)。比如用戶名為myuser,密碼為mypwd,
執行./encrypt mypwd結果為HJBoxfRsjeI=。如果有多個用戶用逗號分隔即可。則設置如下行所示: pwds = myuser: HJBoxfRsjeI=,myuser2:HJBoxfRsjeI=必備,預設值即可)Atlas的運行方式,設為true時為守護進程方式,
設為false時為前臺方式,一般開發調試時設為false,線上運行時設為true daemon = true (必備,預設值即可)設置Atlas的運行方式,設為true時Atlas會啟動兩個進程,一個為monitor,
一個為worker,monitor在worker意外退出後會自動將其重啟,設為false時只有worker,沒有monitor,一般開發調試時設為false,線上運行時設為true keepalive = true (必備,根據實際情況配置)工作線程數,推薦設置成系統的CPU核數的2至4倍 event-threads = 4 (必備,預設值即可)日誌級別,分為message、warning、critical、error、debug五個級別 log-level = message (必備,預設值即可)日誌存放的路徑 log-path = /usr/local/mysql-proxy/log (必備,根據實際情況配置)SQL日誌的開關,可設置為OFF、ON、REALTIME,OFF代表不記錄SQL日誌,ON代表記錄SQL日誌,該模式下日誌刷新是基於緩衝區的,當日誌填滿緩衝區後,才將日誌信息刷到磁碟。REALTIME用於調試,代表記錄SQL日誌且實時寫入磁碟,預設為OFF sql-log = OFF (可選項,可不設置)慢日誌輸出設置。當設置了該參數時,則日誌只輸出執行時間超過sql-log-slow(單位:ms)的日誌記錄。不設置該參數則輸出全部日誌。 sql-log-slow = 10 (可選項,可不設置)關閉不活躍的客戶端連接設置。當設置了該參數時,Atlas會主動關閉經過'wait-timeout'時間後一直未活躍的連接。單位:秒 wait-timeout = 10 (必備,預設值即可)Atlas監聽的工作介面IP和埠 proxy-address = 0.0.0.0:1234 (必備,預設值即可)Atlas監聽的管理介面IP和埠
admin-address = 0.0.0.0:2345 (可選項,可不設置)分表設置,此例中person為庫名,mt為表名,id為分表欄位,3為子表數量,可設置多項,以逗號分隔,若不分表則不需要設置該項,子表需要事先建好,子表名稱為表名_數字,數字範圍為[0,子表數-1],如本例里,子表名稱為mt_0、mt_1、mt_2 tables = person.mt.id.3 (可選項,可不設置)預設字元集,若不設置該項,則預設字元集為latin1 charset = utf8 (可選項,可不設置)允許連接Atlas的客戶端的IP,可以是精確IP,也可以是IP段,以逗號分隔,若不設置該項則允許所有IP連接,否則只允許列表中的IP連接 client-ips = 127.0.0.1, 192.168.1 (可選項,極少需要)Atlas前面掛接的LVS的物理網卡的IP(註意不是虛IP),若有LVS且設置了client-ips則此項必須設置,否則可以不設置 lvs-ips = 192.168.1.1

 

5.啟動Atlas

 

[root@localhost bin]# ./mysql-proxyd test start  #啟動
OK: MySQL-Proxy of test is started
[root@localhost bin]# ./mysql-proxyd test restart  #重啟Atlas。 
[root@localhost bin]# ./mysql-proxyd test stop  #停止Atlas。

 

  

 

註意: 

  (1). 運行文件是:mysql-proxyd(不是mysql-proxy)。 
  (2). test是conf目錄下配置文件的名字 
  (3). 可以使用ps -ef | grep mysql-proxy查看Atlas是否已經啟動或停止。

 

 6.連接Atlas測試,進入MySQL操作界面為成功

 

[root@localhost ~]#  yum install mysql      #按需安裝mysql客戶端,如果顯示找不到命令,需要安裝,MySQL不需要啟動
[root@localhost ~]#  mysql -h127.0.0.1 -P1234 -u root -p root  #配置的用戶
[root@localhost ~]# mysql -h127.0.0.1 -P2345 -u user -p pwd  #管理員

 

  

 

可以訪問help表查看能做什麼

 

mysql> select * from help; #查看管理DB的各類命令 
+----------------------------+---------------------------------------------------------+
| command                    | description                                             |
+----------------------------+---------------------------------------------------------+
| SELECT * FROM help         | shows this help                                         |
| SELECT * FROM backends     | lists the backends and their state                      |
| SET OFFLINE $backend_id    | offline backend server, $backend_id is backend_ndx's id |
| SET ONLINE $backend_id     | online backend server, ...                              |
| ADD MASTER $backend        | example: "add master 127.0.0.1:3306", ...               |
| ADD SLAVE $backend         | example: "add slave 127.0.0.1:3306", ...                |
| REMOVE BACKEND $backend_id | example: "remove backend 1", ...                        |
| SELECT * FROM clients      | lists the clients                                       |
| ADD CLIENT $client         | example: "add client 192.168.1.2", ...                  |
| REMOVE CLIENT $client      | example: "remove client 192.168.1.2", ...               |
| SELECT * FROM pwds         | lists the pwds                                          |
| ADD PWD $pwd               | example: "add pwd user:raw_password", ...               |
| ADD ENPWD $pwd             | example: "add enpwd user:encrypted_password", ...       |
| REMOVE PWD $pwd            | example: "remove pwd user", ...                         |
| SAVE CONFIG                | save the backends to config file                        |
| SELECT VERSION             | display the version of Atlas                            |
+----------------------------+---------------------------------------------------------+
16 rows in set (0.00 sec)

 

mysql> SELECT * FROM backends; #列出後臺和他們的狀態
+-------------+--------------------+-------+------+
| backend_ndx | address            | state | type |
+-------------+--------------------+-------+------+
|     1 | 192.168.3.39:3306     | up    | rw   |
|   2    | 192.168.3.101:3306 | down  | ro   |
+-------------+--------------------+-------+------+
2 rows in set (0.00 sec)
都為up說明連接成功rw代表寫,ro代表讀

 

 執行SQL進行測試可以顯示執行信息

[root@localhost ~]# more /usr/local/mysql-proxy/log/test.log 
2018-03-21 20:59:28: (critical) network-mysqld.c.1387: plugin_call(CON_STATE_READ_QUERY) failed  #關鍵
2018-03-21 21:01:22: (warning) Forbidden SQL: 192.168.3.14:56397: delete from user;  #警報
2016-01-28 09:55:22: (message) proxy listening on port 0.0.0.0:1234  #消息
2016-01-28 09:55:22: (message) added read/write backend: 192.168.1.2:3306  #寫
2016-01-28 09:55:22: (message) added read-only backend: 192.168.1.3:3306  #讀
或者
[root@localhost ~]# tail -f /usr/local/mysql-proxy/log/sql_test.log  #運行實施載入 ,需要更改日誌配置,修改日誌為實時寫入磁碟

 

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 最近在學習Linux系統,今天在安裝MySQL資料庫時出現很多問題,花費了兩個小時終於解決,故記錄下來以供大家參考。(本人目前還在學習階段,下麵寫到的是自己結合網上查到的資料以及各位前輩給出的解決方法綜合得出的,如有不對的地方,還請各位指出。本人也是第一次也博客,排版問題還請各位多多包涵。) ...
  • 系統不支持service iptables restart,service iptables status,如何查看與清除iptable的規則呢? ...
  • -e匹配多個模式,-v反轉輸出,-f匹配多個文件中相同的行 -i忽略大小寫 -o只輸出匹配內容 sed 流編輯器,過濾和替換文本。 工作原理:sed命令將當前處理的行讀入模式空間進行處理,處理完把結果輸出,並清空模式空間。然後再將下一行讀入模式空間進行處理輸出,以此類推,直至最後一行。 用法:sed ...
  • 初來乍到。 瞭解下,溫故。 十大經典排序演算法: https://www.cnblogs.com/onepixel/articles/7674659.html ...
  • 無需軟體windows如何加密文件夾,在百部百科上看到,放在博客中以便查看。 ...
  • 一、建立虛擬機(沒有在筆記中出現的視圖按照預設安裝即可、綠色背景圖片註意不要太過於關註上邊的文字抓要是關於分區表設置的借鑒) 二、安裝系統 註意此處。如果是想設置GTP格式的分區表可以看下麵的綠色背景圖片否則可直接略過 下麵的兩張圖片可省略配置 ...
  • 貼上內容來源https://www.cnblogs.com/Alier/p/6358447.html 1 備份原來的更新源 2 修改更新源 打開sources.list (這就是存放更新源的文件) 1.阿裡源 將下麵所有內容複製,粘貼並覆蓋sources.list文件中的所有內容 2.清華源 進入網 ...
  • 從事DBA工作多年 MYSQL源碼也是頭一次接觸 嘗試記錄下自己看MYSQL5.7源碼的歷程 目錄: 51ak帶你看MYSQL5.7源碼1:main入口函數 51ak帶你看MYSQL5.7源碼2:編譯現有的代碼 現在把剛纔在VSCODE里看到的源碼,安裝成服務。 測試機:CENTOS6 (虛機配置為 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...