亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

為MySQL安裝配置代理工具Kingshard的基本教程

2024-07-24 13:08:39
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了為MySQL安裝配置代理工具Kingshard的基本教程,Kingshard由Go語言寫成,可以實現讀寫分離和客戶端IP訪問控制等功能,非常強大,需要的朋友可以參考下
 

環境說明

本文僅作為最小實驗環境,因此不使用master, slave模式. 單機上使用mysql_mutil運行二個mysql實列
初始化數據目錄

# mysql_install_db --datadir=/var/lib/mysql2/ --user=mysql# mysql_install_db --datadir=/var/lib/mysql3/ --user=mysql

 
生成配置文件

利用mysqld_multi工具生成配置文件

# mysqld_multi --example > mysqld_multi.conf

 
修改根據自己的需求修改mysqld_multi.conf
例:

[mysqld_multi]mysqld   = /usr/bin/mysqld_safemysqladmin = /usr/bin/mysqladminuser    = multi_adminpassword  = my_password [mysqld2]socket   = /var/lib/mysql2/mysql.sock2port    = 3307pid-file  = /var/lib/mysql2/hostname.pid2datadir  = /var/lib/mysql2#language  = /usr/share/mysql/englishuser    = unix_user1 [mysqld3]socket   = /var/lib/mysql3/mysql.sock3port    = 3308pid-file  = /var/lib/mysql3/hostname.pid3datadir  = /var/lib/mysql3#language  = /usr/share/mysql/swedishuser    = unix_user2

 
啟動多個實例

# mysqld_multi --defaults-extra-file=./mysqld_multi.conf start

或者 mysqld_multi --defaults-extra-file=./mysqld_multi.conf start 2; mysqld_multi --defaults-extra-file=./mysqld_multi.conf start 3(分別啟動)
 
注意這里的2、3對應conf配置文件 mysqld2、mysqld3,以此來區分。
查看實例狀態

[root@testnode kingshard]# mysqld_multi --defaults-extra-file=./mysqld_multi.conf report
Reporting MySQL serversMySQL server from group: mysqld2 is runningMySQL server from group: mysqld3 is running
 
說明2個實例都已經啟動了。

 

安裝Kingshard

1.安裝Go語言環境,具體步驟請Google。

git clone https://github.com/flike/kingshard.git src/github.com/flike/kingshardcd src/github.com/flike/kingshardsource ./dev.shmake

設置配置文件
運行kingshard。 

./bin/kingshard -config=etc/multi.yaml

 
2.配置文件說明

# kingshard的地址和端口addr : 127.0.0.1:9696 # 連接kingshard的用戶名和密碼user : kingshardpassword : kingshard # log級別,[debug|info|warn|error],默認是errorlog_level : debug# 只允許下面的IP列表連接kingshardallow_ips: 127.0.0.1 # 一個node節點表示mysql集群的一個數據分片,包括一主多從(可以不配置從庫)nodes :  #node節點名字  name : node1    # 連接池中默認的空閑連接數  idle_conns : 16   # kingshard連接該node中mysql的用戶名和密碼,master和slave的用戶名和密碼必須一致  user : kingshard   password : kingshard   # master的地址和端口   master : 127.0.0.1:3306   # slave的地址和端口,可不配置  slave :   #kingshard在300秒內都連接不上mysql,則會下線該mysql  down_after_noalive : 300-   name : node2   idle_conns : 16  rw_split: true  user : kingshard   password : kingshard   master : 192.168.59.103:3307  slave :   down_after_noalive: 100 # 分表規則schemas :-  db : kingshard  nodes: [node1,node2]  rules:    default: node1    shard:    -        table: test_shard_hash      key: id      nodes: [node1, node2]      type: hash      locations: [4,4]     -        table: test_shard_range      key: id      type: range      nodes: [node1, node2]      locations: [4,4]      table_row_limit: 10000

 
3.Tips
kingshard采用的是yaml方式解析配置文件,需要注意的是yaml配置文件不允許出現tab鍵,且冒號后面需要跟一個空格。配置文件編寫完成后,可以在yaml lint網站驗證是否有格式錯誤。

 

配置Kingshard

修改/etc/hosts文件, 添加如下二行

127.0.0.1 node1127.0.0.1 node2

 
配置如下

# server listen addraddr : 127.0.0.1:9696 # server user and passworduser : kingshardpassword : kingshard # log level[debug|info|warn|error],default errorlog_level : debug# only allow this ip list ip to connect kingshard#allow_ips: 127.0.0.1 # node is an agenda for real remote mysql server.nodes :-   name : node1    # default max idle conns for mysql server  idle_conns : 16   # if rw_split is true, select will use slave server  rw_split: true   # all mysql in a node must have the same user and password  user : root  password : root   # master represents a real mysql master server   master : 127.0.0.1:3307   # slave represents a real mysql salve server,and the number after '@' is   #read load weight of this slave.  #slave : 192.168.0.11:3307@2,192.168.0.12:3307@5  slave :   #down_after_noalive : 300-   name : node2    # default max idle conns for mysql server  idle_conns : 16   # if rw_split is true, select will use slave server  rw_split: true   # all mysql in a node must have the same user and password  user : root  password : root   # master represents a real mysql master server   master : 127.0.0.1:3308   # slave represents a real mysql salve server   slave :    # down mysql after N seconds noalive  # 0 will no down  down_after_noalive: 100 # schema defines which db can be used by client and this db's sql will be executed in which nodesschemas :-  db : kingshard  nodes: [node1,node2]  rules:    default: node1    shard:    -        table: test_shard_hash      key: id      nodes: [node1, node2]      type: hash      locations: [4,4]     -        table: test_shard_range      key: id      type: range      nodes: [node1, node2]      locations: [4,4]      table_row_limit: 10000

 
設置mysql實例信息

設置用戶
分類登陸mysqld2, mysqld3, 創建root用戶(該用戶是給kingshard管理的,測試為了方便所以直接使用root) 若用戶存在,跳過此步

/usr/bin/mysqladmin -h 127.0.0.1 -P 3307 -u root password 'root'/usr/bin/mysqladmin -h 127.0.0.1 -P 3308 -u root password 'root'

 
建數據庫
分類登陸mysqld2, mysqld2,創建kingshard數據庫

/usr/bin/mysql -h 127.0.0.1 -P 3307 -u root -proot -e "create database kingshard;"/usr/bin/mysql -h 127.0.0.1 -P 3308 -u root -proot -e "create database kingshard;"

 
啟動Kingshard

# ./bin/kingshard -config=etc/multi.yaml

 
測試shard功能

使用test_shard_hash測試 shard hash分表功能.
創建分表
創建test_shard_hash分表(_0000~_0007), _0001~_0003在node1(mysqld2)上創建, _0004~_0007在node2(mysqld3)上創建。

for i in `seq 0 3`;do /usr/bin/mysql -h 127.0.0.1 -P 3307 -u root -proot kingshard -e "CREATE TABLE IF NOT EXISTS test_shard_hash_000"${i}" ( id BIGINT(64) UNSIGNED NOT NULL, str VARCHAR(256), f DOUBLE, e enum('test1', 'test2'), u tinyint unsigned, i tinyint, ni tinyint, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;";donefor i in `seq 4 7`;do /usr/bin/mysql -h 127.0.0.1 -P 3308 -u root -proot kingshard -e "CREATE TABLE IF NOT EXISTS test_shard_hash_000"${i}" ( id BIGINT(64) UNSIGNED NOT NULL, str VARCHAR(256), f DOUBLE, e enum('test1', 'test2'), u tinyint unsigned, i tinyint, ni tinyint, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;";done

 
插入數據
mysql連接到kingshard插入數據

for i in `seq 1 10`;do mysql -h 127.0.0.1 -P 9696 -u kingshard -pkingshard -e "insert into test_shard_hash (id, str, f, e, u, i) values(${i}, 'abc$i', 3.14, 'test$i', 255, -127)";done

 
kingshard日志如下:

2015/07/29 07:39:15 - INFO - 127.0.0.1:40135->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40135->127.0.0.1:3307:insert into test_shard_hash_0001(id, str, f, e, u, i) values (1, 'abc1', 3.14, 'test1', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40136->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40136->127.0.0.1:3307:insert into test_shard_hash_0002(id, str, f, e, u, i) values (2, 'abc2', 3.14, 'test2', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40137->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40137->127.0.0.1:3307:insert into test_shard_hash_0003(id, str, f, e, u, i) values (3, 'abc3', 3.14, 'test3', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40138->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40138->127.0.0.1:3308:insert into test_shard_hash_0004(id, str, f, e, u, i) values (4, 'abc4', 3.14, 'test4', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40139->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40139->127.0.0.1:3308:insert into test_shard_hash_0005(id, str, f, e, u, i) values (5, 'abc5', 3.14, 'test5', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40140->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40140->127.0.0.1:3308:insert into test_shard_hash_0006(id, str, f, e, u, i) values (6, 'abc6', 3.14, 'test6', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40141->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40141->127.0.0.1:3308:insert into test_shard_hash_0007(id, str, f, e, u, i) values (7, 'abc7', 3.14, 'test7', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40142->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40142->127.0.0.1:3307:insert into test_shard_hash_0000(id, str, f, e, u, i) values (8, 'abc8', 3.14, 'test8', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40143->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40143->127.0.0.1:3307:insert into test_shard_hash_0001(id, str, f, e, u, i) values (9, 'abc9', 3.14, 'test9', 255, -127)2015/07/29 07:39:15 - INFO - 127.0.0.1:40144->127.0.0.1:3307:select @@version_comment limit 12015/07/29 07:39:15 - INFO - 127.0.0.1:40144->127.0.0.1:3307:insert into test_shard_hash_0002(id, str, f, e, u, i) values (10, 'abc10', 3.14, 'test10', 255, -127)

 
通過kingshard的日志可以看到數據插入時根據不同的hash值,插入到不同的子表里面去了。


查看數據

[root@testnode kingshard]# mysql -h 127.0.0.1 -P 9696 -u kingshard -pkingshard -e "select * from test_shard_hash where id in (2, 3, 4, 5)"
+----+------+------+-------+------+------+------+| id | str | f  | e   | u  | i  | ni  |+----+------+------+-------+------+------+------+| 2 | abc2 | 3.14 | test2 | 255 | -127 | NULL || 3 | abc3 | 3.14 |    | 255 | -127 | NULL || 4 | abc4 | 3.14 |    | 255 | -127 | NULL || 5 | abc5 | 3.14 |    | 255 | -127 | NULL |+----+------+------+-------+------+------+------+

 
注意kingshard不支持 select * from test_hard_hash查詢, 只支持帶條件的查詢。



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久亚洲| 国产一区av在线| 国产mv久久久| 欧美乱大交做爰xxxⅹ性3| 日韩高清中文字幕| 亚洲91av视频| 亚洲最大av网| 欧美高清视频免费观看| 国产精品白丝jk喷水视频一区| 尤物yw午夜国产精品视频| 日韩有码在线观看| 亚洲视频在线观看免费| 国产精品爽爽爽爽爽爽在线观看| 色老头一区二区三区| 亚洲午夜未满十八勿入免费观看全集| 日韩欧美一区二区三区| 欧美极品欧美精品欧美视频| 欧美丰满少妇xxxxx| 国产日韩欧美影视| 亚洲国产精品视频在线观看| 日韩在线观看免费av| 69av在线播放| 亚洲欧美国内爽妇网| 欧美成人激情在线| 久久99国产精品久久久久久久久| 久久久www成人免费精品张筱雨| 国产主播精品在线| 国产日韩精品在线播放| 亚洲国内高清视频| 亚洲人成亚洲人成在线观看| www欧美日韩| 精品在线欧美视频| 国产精品日韩在线观看| 高跟丝袜一区二区三区| 亚洲人成网站在线播| 国产精品99久久久久久久久| 欧美中文在线视频| 国产精品欧美一区二区| 欧美老女人在线视频| 97超级碰碰人国产在线观看| 中文字幕亚洲一区| 91久久精品视频| 欧美日韩国产精品一区| 国产精品久久久久av免费| 在线观看日韩www视频免费| 国产精品美乳一区二区免费| 欧美日韩黄色大片| 国产精品视频公开费视频| 亚洲国产精品久久91精品| 在线观看国产成人av片| 91精品久久久久久久久久久久久久| 国产在线一区二区三区| 欧美性少妇18aaaa视频| 久久久精品免费| 色婷婷综合久久久久| 国产午夜一区二区| 成人福利网站在线观看| 国产精品久久久久秋霞鲁丝| 久久这里有精品| 国产精品久久久久久久app| 精品亚洲永久免费精品| 91高清视频免费| 97国产一区二区精品久久呦| 国产精品爽爽ⅴa在线观看| 精品久久久久久久久久国产| 午夜精品视频网站| 在线观看国产欧美| 亚洲欧美第一页| 久久免费观看视频| 日本久久久久久| 日韩av在线电影网| 精品国产户外野外| 欧美大片欧美激情性色a∨久久| zzijzzij亚洲日本成熟少妇| 激情久久av一区av二区av三区| 亚洲色图国产精品| 精品久久久免费| 国产日韩欧美一二三区| 成人午夜黄色影院| 色偷偷亚洲男人天堂| 精品欧美激情精品一区| 亚洲无av在线中文字幕| 中文字幕日韩欧美在线视频| 奇米影视亚洲狠狠色| 欧美风情在线观看| 黑人巨大精品欧美一区二区三区| 黄色精品一区二区| 日韩在线高清视频| 日韩免费观看av| 久久久91精品| 国产亚洲精品va在线观看| 97精品一区二区视频在线观看| 美女av一区二区| 亚洲iv一区二区三区| 夜夜嗨av色综合久久久综合网| 成人在线一区二区| 国产精品99久久久久久人| 国产精品极品美女粉嫩高清在线| 欧美激情按摩在线| 欧美激情免费在线| 欧美一级大片在线免费观看| 亚洲最新在线视频| 久久亚洲国产精品成人av秋霞| 精品日本美女福利在线观看| 国产乱肥老妇国产一区二| 日韩在线视频观看| 国产欧美日韩综合精品| 欧美电影在线免费观看网站| 欧美成人精品xxx| www.日本久久久久com.| 一区二区欧美日韩视频| 国产成人综合精品| 亚洲一区二区在线播放| 日韩福利在线播放| 国产精品一区二区三| 91中文字幕在线观看| 国内外成人免费激情在线视频网站| 亚洲欧美制服另类日韩| 亚洲无线码在线一区观看| 日韩av在线资源| 亚洲成人精品视频在线观看| 91色视频在线导航| 国产成人一区二区在线| 色无极影院亚洲| 亚洲成人在线视频播放| 亚洲人成电影网站色xx| 国产91av在线| 久久91亚洲精品中文字幕奶水| 国产精品成人av在线| 久久久久久九九九| 亚洲视频国产视频| 亚洲国产精品嫩草影院久久| 亚洲a一级视频| 91tv亚洲精品香蕉国产一区7ujn| 综合国产在线观看| 欧美疯狂做受xxxx高潮| 国产精品福利观看| 黄色91在线观看| 日韩av电影院| 欧美性极品xxxx做受| 久久国产精品影视| 国产精品久久久久久久久| 久久久久中文字幕2018| 日韩av在线看| 国产精品三级网站| 欧美洲成人男女午夜视频| 国产精品爱久久久久久久| 欧美wwwwww| 中文字幕欧美日韩va免费视频| 国产日韩精品综合网站| 欧美日韩国产精品一区二区不卡中文| 91精品成人久久| 欧美精品在线免费播放| 搡老女人一区二区三区视频tv| 亚洲激情视频在线观看| 日产精品久久久一区二区福利| 国产成+人+综合+亚洲欧美丁香花| 粗暴蹂躏中文一区二区三区| 欧美放荡办公室videos4k| 68精品国产免费久久久久久婷婷| 国外成人性视频| 久久免费精品日本久久中文字幕| 国产精品爱久久久久久久| 欧洲中文字幕国产精品|