【发布时间】:2014-12-19 15:37:13
【问题描述】:
我正在尝试构建一个脚本,将项目从生产数据库导入本地数据库,但在将连接形式从生产数据库切换到本地时遇到问题。
Doctrine_Manager::getInstance()->setCurrentConnection('prod-slave');
// execute query to get data from production, confirm it worked
Doctrine_Manager::getInstance()->setCurrentConnection('local');
// insert data into local database
当我运行它时,我收到了这个错误:
PHP 致命错误:未捕获异常 'Doctrine_Connection_Mysql_Exception' 并带有消息 'SQLSTATE[HY000]: 一般错误:1290 MySQL 服务器正在使用 --read-only 运行 选项,因此它无法在...中执行此语句'
如果我在将其设置为本地之前关闭与 prod-slave 的连接,我会得到:
PHP 致命错误:未捕获的异常 'Doctrine_Manager_Exception' 带有消息 'Unknown connection: prod-slave' in...
请注意,在这两种情况下,即使我将连接更改为本地连接,它仍在尝试连接到从属(在第一种情况下,它必须是从属,因为它是只读的)。
我也尝试过手动设置连接:
Doctrine_Manager::connection('mysql://path');
学说版本:1.2.3
Symfony 版本:1.3.9
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
您正在与只读从属设备通信,并尝试执行更新/插入查询。因为它是只读的,所以你想要的是不可能的。要么连接到可写的 master,要么将你的复制更改为 master-master 系统。
-
我正在从从站获取数据,然后更改当前与本地数据库的连接,但它仍在尝试将数据插入从站;这就是问题的全部。
标签: php mysql doctrine connection symfony1