1. 程式人生 > >MySQL中介軟體之ProxySQL的安裝

MySQL中介軟體之ProxySQL的安裝

1.下載proxySQL,我用的是rpm安裝


2.安裝ProxySQL

[[email protected] home]# rpm -ivh proxysql-1.4.7-1.1.el6.x86_64.rpm
warning: proxysql-1.4.7-1.1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing...                ########################################### [100%]
   1:proxysql               ########################################### [100%]

可能遇到的問題:

[[email protected] home]# rpm -ivh proxysql-1.4.7-1.1.el6.x86_64.rpm
warning: proxysql-1.4.7-1.1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
error: Failed dependencies:
        libcrypto.so.10(OPENSSL_1.0.1)(64bit) is needed by proxysql-1.4.7-1.1.el6.x86_64
        libcrypto.so.10(libcrypto.so.10)(64bit) is needed by proxysql-1.4.7-1.1.el6.x86_64
        libssl.so.10(libssl.so.10)(64bit) is needed by proxysql-1.4.7-1.1.el6.x86_64

通過 yum安裝libssl還是報錯,最後yum install update更新了所有的核心包後居然可以安裝正常了。

3.啟動proxysql:

[[email protected] home]# proxysql --help
High Performance Advanced Proxy for MySQL

USAGE: proxysql [OPTIONS]

OPTIONS:

-c, --config ARG             Configuraton file
-D, --datadir ARG            Datadir
-e, --exit-on-error          Do not restart ProxySQL if crashes
-f, --foreground             Run in foreground
-h, -help, --help, --usage   Display usage instructions.
-M, --no-monitor             Do not start Monitor Module
-n, --no-start               Starts only the admin service
-r, --reuseport              Use SO_REUSEPORT
-S, --admin-socket ARG       Administration Unix Socket
-V, --version                Print version
--idle-threads               Create auxiliary threads to handle idle connections
--initial                    Rename/empty database file
--reload                     Merge config file into database file
--sqlite3-server             Enable SQLite3 Server
[[email protected] home]# ps -ef | grep proxysql
root     18815     1  0 23:16 ?        00:00:00 proxysql
root     18816 18815  0 23:16 ?        00:00:00 proxysql
root     18840  2865  0 23:17 pts/0    00:00:00 grep proxysql
[[email protected] /]# service proxysql status
ProxySQL is running (18815).

proxysql安裝好後就直接是啟動的狀態

那他的配置檔案在哪裡?

[[email protected] /]# find -name 'proxy*'
./usr/bin/proxysql-status
./usr/bin/proxysql
./usr/bin/proxy
./usr/bin/proxysql_galera_checker
./usr/bin/proxysql_node_monitor
./usr/bin/proxysql-admin
./usr/share/doc/m2crypto-0.20.2/demo/x509/proxy_init.py
./usr/share/doc/m2crypto-0.20.2/demo/x509/proxy_info.py
./usr/share/doc/m2crypto-0.20.2/demo/x509/proxylib.py
./usr/share/doc/m2crypto-0.20.2/demo/x509/proxy_destroy.py
./usr/share/doc/proxysql-1.4.7
./usr/share/man/man8/proxymap.8.gz
./usr/libexec/sssd/proxy_child
./usr/libexec/postfix/proxymap
./usr/lib/python2.6/site-packages/nose/proxy.py
./usr/lib/python2.6/site-packages/nose/proxy.pyo
./usr/lib/python2.6/site-packages/nose/proxy.pyc
./usr/lib/python2.6/site-packages/scservices/dbus/proxy
./proc/sys/net/ipv4/neigh/default/proxy_qlen
./proc/sys/net/ipv4/neigh/default/proxy_delay
./proc/sys/net/ipv4/neigh/lo/proxy_qlen
./proc/sys/net/ipv4/neigh/lo/proxy_delay
./proc/sys/net/ipv4/neigh/eth3/proxy_qlen
./proc/sys/net/ipv4/neigh/eth3/proxy_delay
./proc/sys/net/ipv4/conf/all/proxy_arp
./proc/sys/net/ipv4/conf/all/proxy_arp_pvlan
./proc/sys/net/ipv4/conf/default/proxy_arp
./proc/sys/net/ipv4/conf/default/proxy_arp_pvlan
./proc/sys/net/ipv4/conf/lo/proxy_arp
./proc/sys/net/ipv4/conf/lo/proxy_arp_pvlan
./proc/sys/net/ipv4/conf/eth3/proxy_arp
./proc/sys/net/ipv4/conf/eth3/proxy_arp_pvlan
./proc/sys/net/ipv6/neigh/default/proxy_qlen
./proc/sys/net/ipv6/neigh/default/proxy_delay
./proc/sys/net/ipv6/neigh/eth3/proxy_qlen
./proc/sys/net/ipv6/neigh/eth3/proxy_delay
./proc/sys/net/ipv6/neigh/lo/proxy_qlen
./proc/sys/net/ipv6/neigh/lo/proxy_delay
./proc/sys/net/ipv6/conf/all/proxy_ndp
./proc/sys/net/ipv6/conf/default/proxy_ndp
./proc/sys/net/ipv6/conf/eth3/proxy_ndp
./proc/sys/net/ipv6/conf/lo/proxy_ndp
./var/run/proxysql
./var/spool/postfix/private/proxywrite
./var/spool/postfix/private/proxymap
./var/lib/proxysql
./var/lib/proxysql/proxysql.pid
./var/lib/proxysql/proxysql_stats.db
./var/lib/proxysql/proxysql.log
./var/lib/proxysql/proxysql.db
./etc/proxysql.cnf
./etc/proxysql-admin.cnf
./etc/logrotate.d/proxysql-logrotate
./etc/rc.d/init.d/proxysql
./home/proxysql-1.4.7-1.1.el6.x86_64.rpm

可以看到比較重要的檔案,比如檔案放在/etc/*.cnf,安裝好的資料檔案,以及log,pid都放在/var/lib/proxysql下面。

4.登陸proxysql,通過埠6032可以直接登入到proxysql來配置引數 

[[email protected] home]# mysql -uadmin -padmin -h 127.0.0.1 -P6032

mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.30 (ProxySQL Admin Module)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+-----+---------------+-------------------------------------+
| seq | name          | file                                |
+-----+---------------+-------------------------------------+
| 0   | main          |                                     |
| 2   | disk          | /var/lib/proxysql/proxysql.db       |
| 3   | stats         |                                     |
| 4   | monitor       |                                     |
| 5   | stats_history | /var/lib/proxysql/proxysql_stats.db |
+-----+---------------+-------------------------------------+
5 rows in set (0.00 sec)
mysql> show tables;
+--------------------------------------------+
| tables                                     |
+--------------------------------------------+
| global_variables                           |
| mysql_collations                           |
| mysql_group_replication_hostgroups         |
| mysql_query_rules                          |
| mysql_query_rules_fast_routing             |
| mysql_replication_hostgroups               |
| mysql_servers                              |
| mysql_users                                |
| proxysql_servers                           |
| runtime_checksums_values                   |
| runtime_global_variables                   |
| runtime_mysql_group_replication_hostgroups |
| runtime_mysql_query_rules                  |
| runtime_mysql_query_rules_fast_routing     |
| runtime_mysql_replication_hostgroups       |
| runtime_mysql_servers                      |
| runtime_mysql_users                        |
| runtime_proxysql_servers                   |
| runtime_scheduler                          |
| scheduler                                  |
+--------------------------------------------+
20 rows in set (0.00 sec)

等等,我有點暈,這然道真的不是登入到mysql資料庫嗎?

真的很像,這樣上手這個軟體就更加沒有難度了。

5.小試牛刀,用proxysql登入資料庫試一下

5.1在資料庫端建立Proxysql登入的使用者:

以下sql是目標資料庫中執行的

mysql> CREATE USER 'proxysql'@'%' IDENTIFIED BY 'proxysql';
Query OK, 0 rows affected (0.41 sec)

mysql> grant  usage on *.* to 'proxysql'@'%';
Query OK, 0 rows affected (0.03 sec)

mysql> create user 'sbuser'@'%' IDENTIFIED BY 'sbpass';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON * . * TO 'sbuser'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.07 sec)

5.2 在proxysql端進行配置,將目標資料庫以及使用者名稱密碼告訴proxysql

mysql> INSERT INTO MySQL_servers(hostgroup_id, hostname, port) VALUES (0,'172.17.61.131',3306);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO MySQL_users(username,password,default_hostgroup) VALUES ('sbuser','sbpass',0);
Query OK, 1 row affected (0.00 sec)
mysql> UPDATE global_variables SET variable_value='proxysql' where variable_name='mysql-monitor_username';
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE global_variables SET variable_value='proxysql' where variable_name='mysql-monitor_password';
Query OK, 1 row affected (0.00 sec)

5.3要配置生效,需要將這些資訊傳到runtime層和disk層。

mysql> LOAD MYSQL SERVERS TO RUNTIME;
Query OK, 0 rows affected (0.00 sec)

mysql> LOAD MYSQL USERS TO RUNTIME;
Query OK, 0 rows affected (0.00 sec)

mysql> SAVE MYSQL SERVERS TO DISK;
Query OK, 0 rows affected (0.03 sec)

mysql> SAVE MYSQL USERS TO DISK;
Query OK, 0 rows affected (0.01 sec)

目前瞭解proxysql有三層架構,runtime層(也是就執行層),memory層(update命令影響到的層),disk層(配置檔案層)。三層的配置可以不同也可以相同,最終系統只識別runtime層的配置。所以要想配置生效,必須將memory層以及disk層的配置導到入runtime層。

5.4 通過埠6033可以登入到已配置好的資料庫

[[email protected] /]# mysql -usbuser -psbpass -h 127.0.0.1 -P 6033 -e "select @@hostname"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| qht131     |
+------------+
[[email protected] /]# mysql -usbuser -psbpass -h 127.0.0.1 -P 6033
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.30 (ProxySQL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| l5m                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.24 sec)

mysql> use l5m
Database changed

mysql> show tables;
+---------------+
| Tables_in_l5m |
+---------------+
| test_mgr      |
+---------------+
1 row in set (0.00 sec)

mysql> select * from test_mgr;
+----+
| c1 |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |
+----+
8 rows in set (0.04 sec) 

可以的,通過proxysql登入到mysql資料庫了!

參考:http://www.fordba.com/mysql_proxysql.html

相關推薦

MySQL中介軟體ProxySQL安裝

1.下載proxySQL,我用的是rpm安裝2.安裝ProxySQL[[email protected] home]# rpm -ivh proxysql-1.4.7-1.1.el6.x86_64.rpm warning: proxysql-1.4.7-1.1.el

MySQL中介軟體Atlas快速安裝

Atlas是由 Qihoo 360公司Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的資料中間層專案。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該專案在360公司內部得到了廣泛應用

MySQL中介軟體proxysql實現讀寫分離

環境說明: IP 角色 應用 平臺 192.168.161.96 讀寫分離解析主機 proxysql rhel7.4 19

mysql中介軟體dbproxy安裝

dbproxy安裝需要注意以下幾點: 1,需要glib-2.42 有可能需要自行下載安裝,本人使用2.42.1 2,編譯的時候如果報錯 需要設定 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig dbproxy只支援mysql(percona

mysql中介軟體proxysql

proxysql有兩個配置檔案: 1,proxysql.cnf 配置說明: datadir="/data/proxysql" admin_variables= { admin_credentials=“admin:admin” mysql_ifaces=“127.0.0.1:6032” }

MySQL 中介軟體 Mycat 安裝與使用

環境        Windows (mycat)        Linux 虛擬機器(主庫)        Linux 虛擬機器(從褲)下載Windows 使用1. 解壓Windows包2. 配置 

MySQL中間件ProxySQL(3):多層配置系統

greate The 如果 galera use img mat 模塊 def 1.ProxySQL中的庫 使用ProxySQL的Admin管理接口連上ProxySQL,可查看ProxySQL擁有的庫。 mysql -uadmin -padmin -h127.0.0.1

MySQL中間件ProxySQL(5):線程、線程池、連接池

時間發送 連接池 roo 接口 緩存 變量 時間 過程 manager 1.ProxySQL的線程 ProxySQL由多個模塊組成,是一個多線程的daemon類程序。每個模塊都有一個或多個線程去執行任務。 例如,以下是剛啟動ProxySQL時的進程情況,一個main進程,

MySQL中間件ProxySQL(9):ProxySQL的查詢緩存功能

res 掃描 結果集 統計 ges test ima sql blog 返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html ProxySQL支持查詢緩存的功能,可以將後端返回的結果集緩存在自己

MySQL中間件ProxySQL(15):ProxySQL代理MySQL組復制

這樣的 body -a 問題 -i 友好 必須 命名 mct 返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL+組復制前言 在以前的ProxySQL版本中,要支持My

MySQL中間件ProxySQL(8):SQL語句的重寫規則極速賽車ProxySQL(8):

prot mvvm xxx 復制 初始化 -a data屬性 不能 所有 聯系方式:QQ:2747044651 網址http://zhengtuwl.com的根元素“#mvvm-app”內只有一個文本節點#text,#text的內容為{{name}}。我們就以下面這個模板詳

.NetCore 中介軟體AddAuthentication服務說明及實現原理簡述

  如果你使用過.NetCore開發過程序,你會很清楚,在其中我們經常會用到一些如下的程式碼 services.AddAuthentication(options => { options.DefaultAuthentic

python中介軟體 進階

  中介軟體簡介     中介軟體是一個用來處理django的響應與請求的框架級別的鉤子.它是一個輕量,低級別的外掛系統,     用於在全域性範圍內改變django的輸入和輸出,每個中介軟體元件都負責做一些特定的功能.

Redux中介軟體redux-thunk使用詳解

Redux的核心概念其實很簡單:將需要修改的state都存入到store裡,發起一個action用來描述發生了什麼,用reducers描述action如何改變state tree 。建立store的時候需要傳入reducer,真正能改變store中資料的是store.dispatch API。

ActiveMQ -- 中介軟體運用(一)

                                           ActiveMQ -- 中介軟體                                                              一、ActiveMQ講解 1

訊息中介軟體ActiveMQ初步認識及第一個程式

MQ-Sender: import java.util.concurrent.TimeUnit; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.MessageProducer; impo

MySQL中介軟體

mysql-proxy、atlas、amoeba、TDDL(Taobao Distributed Data Layer)、cobar 一、kingshard 效能相當不錯 二、Mycat 不支援prepare語句時硬傷 三、Atlas 四

初識訊息中介軟體ActiveMQ(一)

訊息中件之—————-ActiveMQ(一) 中介軟體:IDC對中介軟體的定義表明,中介軟體是一類軟體,而非一種軟體;中介軟體不僅僅實現互連,還要實現應用之間的互操作;中介軟體是基於分散式處理的軟體,最突出的特點是其網路通訊功能。是實現多平臺,多應用相互協作的一類重要的軟體。 訊

訊息中介軟體 RocketMQ

參考文件: http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/ http://rocketmq.apache.org/docs/quick-start/ https://www.jianshu.com/p/824066d70d

深度學習編譯中介軟體NNVM(五)TVM論文閱讀

參考文件 摘要:現今,像Tensorflow,MXNet,Caffe和Pytorch這樣的可擴充套件框架共同驅動了深度學習的流行度和實用性。但是,這些框架只為一些伺服器端GPU提供優化,並將工作負載部署到其他平臺,如移動手機,嵌入式裝置和其他特定的加