经过检测mysql-proxy经常自动挂掉重启,已弃用。改用mycat了
在navicat客户端中登录mysql-proxy进行操作正常在laravel中执行任何sql语句都会报错
SQLSTATE[HY000]: General error: 1243 Unknown prepared statement handler (X) given to
mysqld_stmt_execute
以下为原问题
最近在做毕业设计项目。Mysql读写分离,主从复制。Mysql-proxy在A服务器,B服务器 Master负责写,C服务器 Slave负责读。在navicat客户端中登录mysql-proxy进行操作正常执行php artisan migrate
抛出如下错误
PS C:\phpStudy\WWW\XXX\test> php artisan migrate
In Connection.php line 647:
SQLSTATE[HY000]: General error: 1243 Unknown prepared statement handler (2) given to
mysqld_stmt_execute (SQL: select * from information_schema.tables where table_schema =
shop and table_name = migrations)
In MySqlConnector.php line 57:
SQLSTATE[HY000]: General error: 1243 Unknown prepared statement handler (2) given to
mysqld_stmt_execute
百度了一下说是权限问题?我看了数据库information_schema
中的表tables
,确实没有table_schema = shop and table_name = migrations
。这种怎么解决?Google没搜出来。*dzx是主从复制账户,proxy是读写分离的代理账户proxy配置如图---账户权限如图
感谢信任与邀请 , 下午有时间我看下 . 下午修改答案 . 公司上午上线一项内容 .
--------------------------- 下午补充 -----------------------------
您好 , 我刚看了下您的问题 , 首先呢 , 看起来是Lavarel(应该没拼错)框架一些内容 , 可惜我没用过L框架 . 不过 , 我有几点或许能帮到你 .
1 . 看起来php的pdo和mysql扩展都没问题 .
2 . 其次是你在proxy上已经测试通过了 , 说明mysql配置都是没问题的 .
3 . information_schema库是mysql的必备核心的一个库 , 其中放的是数据表数据库的信息 . 那么select * from information_schema where table_schema=shop实际上要要查询您的mysql中有没有一个叫shop的数据库 , 再加上 and table_name = migrations条件就是说要找mysql中shop库中的migrations表 . 你可以检查一下是否有这个库和这个表 .
别的 , 我也暂时帮不了你了 .