将mySql2迁移到postgreSQL:mysql2psql时查询缓存类型错误

时间:2013-03-14 07:35:14

标签: mysql ruby-on-rails postgresql heroku migration

所以我将我的开发环境和生产环境迁移到postgresql,以便我可以部署到Heroku。安装mysql2psql gem后,初始化一个(postgresql)database.yml文件 - 我卡在运行mysql2psql的位置。运行后我得到以下内容:

/Library/Ruby/Gems/1.8/gems/mysql2psql-0.1.0/bin/../lib/mysql2psql/mysql_reader.rb:153:in `query': Query cache is disabled; restart the server with query_cache_type=1 to enable it 

所以问题是如何重新启动mysql2服务器并指定query_cache_type = 1?

我尝试使用以下内容启动服务器并且它无法正常工作:

mysql --query_cache_type=1; 

尝试了几个类似的命令后,我尝试启动服务器,然后在会话中执行:

mysql> SET GLOBAL query_cache_type = 1;

但是我得到了:

ERROR 1651 (HY000): Query cache is disabled; restart the server with query_cache_type=1 to enable it

这实际上是一个语法问题:我用什么命令来启动我的sql server并使用query_cache_type = 1?

2 个答案:

答案 0 :(得分:10)

在Mac OS X 10.8上,my.cnf文件可能位于文件夹/usr/local/mysql-5.6.10-osx10.7-x86_64

使用

在终端中搜索
$ find / -name my.cnf

在您的系统上找到它。

通过在末尾添加此行来编辑my.cnf文件

query_cache_type=1

如果您安装了MySQL偏好设置窗格(http://dev.mysql.com/doc/refman/5.1/en/macosx-installation-prefpane.html),则在系统偏好设置中重新启动mysqld,或者在终端中重写

$ sudo /usr/local/mysql/support-files/mysql.server restart

然后使用

登录mysql
$ mysql -h localhost -u root -p

并写

mysql> SET GLOBAL query_cache_size=40000;

如果你再运行

$ mysql2psql

在Rails app文件夹中,它应该转换你的数据库。

答案 1 :(得分:1)

只需将它设置在my.cnf文件中,通常位于/ etc中?然后重新启动。

编辑:

此外,您需要设置query_cache_size,如果将这两个设置中的一个设置为零,则不会启用它。