本文目錄一覽:
- 1、如何5分鐘實現一個最簡單的MySQL代理伺服器
- 2、如何用java 5分鐘實現一個最簡單的mysql代理伺服器
- 3、如何使用代理網路連接MYSQL
- 4、如何在linux系統安裝php代理伺服器和MYSQL?
- 5、python如何通過代理伺服器連接mysql?
如何5分鐘實現一個最簡單的MySQL代理伺服器
不同客戶端的請求分發到不同的server實現後端多租戶資料庫服務,當然,類似的原理還可以實現分庫分表、一個請求寫到多個server或者不同的源端如消息隊列。
監控統計客戶端的請求情況,請求分布統計、請求類型等,以此來優化資料庫的使用。
總之,可以實現你想要的諸多功能。
如何用java 5分鐘實現一個最簡單的mysql代理伺服器
首先,準備開發工具套件,我們並不會引入過多工具包,僅僅需要:
java8
vert.x 3
如果你是用maven做為項目管理工具,請將vert.x 3引入:
1
2
3
4
5
dependency
groupIdio.vertx/groupId
artifactIdvertx-core/artifactId
version3.3.2/version
/dependency
代碼實現:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package
com.maxleap.mysqlproxy;
import
io.vertx.core.AbstractVerticle;
import
io.vertx.core.Vertx;
import
io.vertx.core.logging.Logger;
import
io.vertx.core.logging.LoggerFactory;
import
io.vertx.core.net.NetClient;
import
io.vertx.core.net.NetServer;
import
io.vertx.core.net.NetSocket;
/**
*
@author sneaky
*
@since 1.0.0
*/
public
class
MysqlProxyServer
{
private
static
final
Logger
logger
=
LoggerFactory.getLogger(MysqlProxyServer.class);
public
static
void
main(String[]
args)
{
Vertx.vertx().deployVerticle(new
MysqlProxyServerVerticle());
}
public
static
class
MysqlProxyServerVerticle
extends
AbstractVerticle
{
private
final
int
port
=
3306;
private
final
String
mysqlHost
=
“10.10.0.6”;
@Override
public
void
start()
throws
Exception
{
NetServer
netServer
=
vertx.createNetServer();//創建代理伺服器
NetClient
netClient
=
vertx.createNetClient();//創建連接mysql客戶端
netServer.connectHandler(socket
–
netClient.connect(port,
mysqlHost,
result
–
{
//響應來自客戶端的連接請求,成功之後,在建立一個與目標mysql伺服器的連接
if
(result.succeeded())
{
//與目標mysql伺服器成功連接連接之後,創造一個MysqlProxyConnection對象,並執行代理方法
new
MysqlProxyConnection(socket,
result.result()).proxy();
如何使用代理網路連接MYSQL
做埠映射,在代理伺服器上安裝埠映射工具,例如PortMap。然後進行配置,把代理伺服器的資料庫埠映射到資料庫伺服器的資料庫埠上。例如sqlserver是1433,oracle是1521.
這樣你訪問代理伺服器的資料庫埠就等於訪問資料庫伺服器的對應埠了。
為了更加安全,你還可以在客戶端上設置使用非默認的埠訪問代理伺服器,然後在代理伺服器上把你指定的埠映射到資料庫伺服器的資料庫埠。比如在代理伺服器上把8000埠映射到伺服器1433埠,然後在客戶端上配置為使用8000埠來訪問資料庫。這樣你就可以通過代理伺服器的8000埠來連接sqlserver資料庫了。
另外,也可以不用代理伺服器,直接用路由器做埠映射。
如何在linux系統安裝php代理伺服器和MYSQL?
下載安裝一般現在的linux安裝鏡像或者光碟安裝都自帶mysql。在裝linux是自定義組件安裝裡面有。下載php和nginx安裝, # 下載最新版本Nginx 網址 wget # 解壓下載下好的源碼包 tar zxvf nginx-0.8.53.tar.gz # 進入解壓出的源碼文件夾 cd nginx-0.8.53 # 配置nginx ./configure –prefix=/opt/nginx –with-http_stub_status_module 解釋: –prefix 為安裝路徑,–with-為需要安裝的模塊,具體可以運行 ./configure –help 查看有效模塊 # 編譯並安裝 nginx make make install # 啟動 nginx /opt/nginx/sbin/nginx # 停止 nginx /opt/nginx/sbin/nginx -s stop # 重載 nginx /opt/nginx/sbin/nginx -s reload 其他配置你在豆丁文檔裡面搜索會發現有很詳細的教程。最後 lnmp是一個經典架構的名稱,學php一開始聽過一次。。他字面意思樓主不是已經寫出來了么。。。就是linux下nginx…mysql php 首字母縮寫。。就是在linux系統下用代理伺服器 資料庫 網頁開發的一種web服務模式
python如何通過代理伺服器連接mysql?
你的虛擬伺服器不是在aws么,你的mysql應該在aws伺服器上吧,那麼連接mysql就不需要使用代理伺服器,直接使用本地連接就是了。
如果解決了您的問題請採納!
如果未解決請繼續追問
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288455.html