MySQL Fabric安装
专注于为中小企业提供成都做网站、成都网站设计、成都外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业椒江免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。MySQL Fabric是Oracle提供的用于辅助进行ha\sharding的工具,它的基本架构:
从上面看出,借助于Fabric, 可以搭建 HA 集群、Sharing 、HA+Sharding。
应用从fabric中得知各个数据库、表、分区等的映射关系,然后访问相应的mysql 实例。
Fabric由三个组件组成:
1)fabric 的管理工具(也就是 mysqlfabric)。
2)fabric nodes,可以启动1到多个node。每个node也是一个进程。用于处理fabric的管理请求、应用的mapping请求。
3)backstore,它也是一个mysql server,维护了HA Group、Sharding Group。
下载
在mysql 5.6之后的版本,可以使用fabric的对应版本是1.5,在mysql官网上可以直接下载。由于fabric是由python语言编写的,并且内部通信用会用到 mysql-connector- python,所以也要下载对应的python驱动。
我下载的版本是:
mysql-utiltities-1.5.6-1.el6.noarch.rpm mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm
安装
1、安装介质
使用操作系统root用户来安装。
先安装mysql-connector-ptyhon,再安装mysql-utilities:
rpm –i mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm rpm –i mysql-utiltities-1.5.6-1.el6.noarch.rpm
安装完毕后,会有一个mysqlfabric命令可以使用。所以可以通过该命令来判定是否安装成功。
2、配置文件
在安装好fabric之后,就会有一个默认的配置文件:fabric.cfg。
默认的配置文件的位置:
Platform | Package | Location |
Microsoft Windows | mysql-utilities-1.5.6-win32.msi | UTILITIES_INSTALLDIR/etc/mysql/fabric.cfg |
Ubuntu Linux 14.04 | mysql-utilities_1.5.6-1ubuntu14.04_all.deb | /etc/mysql/fabric.cfg |
Debian Linux 6.0 | mysql-utilities_1.5.6-1debian6.0_all.deb | /etc/mysql/fabric.cfg |
Red Hat Enterprise Linux 6 / Oracle Linux 6 | mysql-utilities-1.5.6-1.el6.noarch.rpm | /etc/mysql/fabric.cfg |
OS X | mysql-utilities-1.5.6-osx10.9.dmg | /etc/mysql/fabric.cfg |
默认的配置文件预览:
[DEFAULT] prefix = /usr/local sysconfdir = /usr/local/etc logdir = /var/log [storage] address = localhost:3306 user = fabric_store password = secret database = mysql_fabric auth_plugin = mysql_native_password connection_timeout = 6 connection_attempts = 6 connection_delay = 1 [servers] user = fabric_server password = secret backup_user = fabric_backup backup_password = secret restore_user = fabric_restore restore_password = secret unreachable_timeout = 5 [protocol.xmlrpc] address = localhost:32274 threads = 5 user = admin password = secret disable_authentication = no realm = MySQL Fabric ssl_ca = ssl_cert = ssl_key = [protocol.mysql] address = localhost:32275 user = admin password = secret disable_authentication = no ssl_ca = ssl_cert = ssl_key = [executor] executors = 5 [logging] level = INFO url = file:///var/log/fabric.log [sharding] mysqldump_program = /usr/bin/mysqldump mysqlclient_program = /usr/bin/mysql [statistics] prune_time = 3600 [failure_tracking] notifications = 300 notification_clients = 50 notification_interval = 60 failover_interval = 0 detections = 3 detection_interval = 6 detection_timeout = 1 prune_time = 3600 [connector] ttl = 1
在这个配置文件中,会涉及到很多种帐户:
·backstore
在[storage]区域,用来配置backstore mysql server的信息。所以这里配置的就是backstore mysql server的操作帐户。
该用户必需的权限:
ALTER - alter some database objectsCREATE - create most database objectsCREATE VIEW - create viewsDELETE - delete rowsDROP - drop most database objects EVENT - manage eventsREFERENCES - foreign keysINDEX - create indexesINSERT - insert rowsSELECT - select rowsUPDATE - update rows
·server
在[servers]区域配置的,是所有的受管mysql server的帐户。
该用户必需的权限:
其中全局满围的权限:
DELETE - prune_shard PROCESS - list sessions to killRELOAD - RESET SLAVEREPLICATION CLIENT - SHOW SLAVE STATUSREPLICATION SLAVE - SHOW SLAVE HOSTS
其中Fabric 数据库的权限:
ALTER - alter some database objectsCREATE - create most database objectsDELETE - delete rowsDROP - drop most database objectsINSERT - insert rowsSELECT - select rowsUPDATE - update rows
·backup
在[servers]区域配置的,它是所有的受管mysql server上用于backup的帐户。例如执行mysqldump。
该用户的权限:
EVENT - show event informationEXECUTE - show routine information inside viewsREFERENCES - foreign keysSELECT - read data SHOW VIEW - SHOW CREATE VIEWTRIGGER - show trigger information
·restore
在[servers]区域配置的,它是所有的受管mysql server上用于restore的帐户。Restore 用户可以使用mysql client执行restore操作。
该用户的权限:
ALTER - ALTER DATABASEALTER ROUTINE - ALTER {PROCEDURE|FUNCTION}CREATE - CREATE TABLECREATE ROUTINE - CREATE {PROCEDURE|FUNCTION}CREATE TABLESPACE - CREATE TABLESPACECREATE VIEW - CREATE VIEWDROP - DROP TABLE (used before CREATE TABLE) EVENT - DROP/CREATE EVENTINSERT - write data LOCK TABLES - LOCK TABLES (--single-transaction)REFERENCES - Create tables with foreign keysSELECT - LOCK TABLES (--single-transaction)SUPER - SET @@SESSION.SQL_LOG_BIN = 0TRIGGER - CREATE TRIGGER
·admin
在[protocol.mysql]、[protocol.xmlrpc]中配置的admin用户,是Fabric 的客户端(包括mysqlfabric、使用jdbc驱动的应用等) 与fabric node交互使用的用户、密码。
在使用mysqlfabric时,可以使用默认的配置文件,也可以使用自定义的配置文件。不管使用哪个配置文件,相关的配置项都是要配的。
3、创建backstore帐户
创建一个mysql 实例作为fabric 的backstore。然后创建一个fabric backstore帐户。
CREATE USER 'fabric_store'@'localhost' IDENTIFIED BY 'secret';GRANT ALTER, CREATE, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, SELECT, UPDATE ON mysql_fabric.* TO 'fabric_store'@'localhost';
创建的这个用户名、密码要跟配置文件fabric.cfg中[storeage]区域中的user、password相同。
此时fabric数据库还没有创建,但是也不要自己去创建。
4、初始化fabric数据库、表
使用mysqlfabric初始化:
mysqlfabric manage setup
如果要使用自定义的fabric.cfg配置文件:
mysqlfabric --config=/your/fabric/cfg/path manage setup
5、mysqlfabric命令
1)启动fabric节点
mysqlfabric --config=/your/fabric/cfg/path manage start
2)停止fabric节点
mysqlfabric --config=/your/fabric/cfg/path manage stop
至于其它命令,可以参考官方文档。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。