为了账号安全,请及时绑定邮箱和手机立即绑定

laravel 5.5,对于mysql-proxy的sql操作一直报错?

laravel 5.5,对于mysql-proxy的sql操作一直报错?

PHP
慕容3067478 2019-03-08 18:10:11
经过检测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配置如图---账户权限如图
查看完整描述

4 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你好?我最近也在玩laravel想用mycat做读写分离可是怎么样配置连接呢

查看完整回答
反对 回复 2019-03-18
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

其实laravel自带读写分离的配置.... 在数据库配置中,可以写一个: read配置和write配置.

'mysql' => [
    'read' => [
        'host' => '192.168.1.1',
        //可以配置不同的账号密码端口
    ],
    'write' => [
        'host' => '196.168.1.2'
        //可以配置不同的账号密码端口
    ],
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
],
查看完整回答
反对 回复 2019-03-18
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我遇到了一样的问题,似乎mysql-proxy无法接受预处理语句
虽然题主已经改了,还是留下一个解决办法
在config/database.php中设置PDO模拟的预处理语句,然后发给mysql正常的sql

            'options'   =>[
                PDO::ATTR_EMULATE_PREPARES => true,
            ],

经过简单测试,可以正常执行CURD操作

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 1239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信