我使用MySQL Fabric实现了MySQL Sharding,如下所示:
步骤:
1.为MySQL Fabric安装最新的(mysql-utilities-1.5.2实用程序)并为php-aware-connector启用mysqlnd_ms
2.设置和管理MySQL Fabric
3.创建组(全局,分片组)并将服务器添加到组中
4.定义数据库模式和表,为数据库/表的所有分片设置范围
5.根据要求启用GTID所有服务器
5.使用命令验证和测试(mysqlfabric sharding lookup_servers database_name.table_name 100000),根据需要ping正确的服务器
问题:我无法将PHP应用程序与MySQL Fabric连接,但如果我使用python应用程序(其连接器),则与MySQL Fabric相同的设置正常工作。
将php应用程序连接到MySQL Fabric时出现此错误:
Warning: mysqlnd_ms_fabric_select_shard(): (mysqlnd_ms) Didn't receive usable servers from MySQL Fabric in /var/www/html/shard.php on line 49
Warning: mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in /var/www/html/shard.php on line 53
Warning: mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in /var/www/html/shard.php on line 53
[2000] (mysqlnd_ms) No connection selected by the last filter
答案 0 :(得分:1)
显然,MySQL路由器现在是将PHP连接到Fabric的方法:
http://mysqlhighavailability.com/mysql-router-on-labs-the-newest-member-of-the-mysql-family/
它们不是在每个连接器中提供单独的结构功能,而是将其分解为外部组件,可以与任何现有连接器透明地使用。