mysql - 需要从SQLite3切换到MySQL,并且想用MySQL进行部署

标签 mysql ruby-on-rails ruby

我们目前使用 SQLite3 作为数据库,并希望在通过 Passenger 和 Nginx 将 Rails 应用程序实时发送到我们的 Linode Ubuntu 10.04 Lucid 盒子之前将其切换到 MySQL .

我们在 linode ubuntu 10.04 机器上设置了 msql 服务器 并为root用户设置密码。我们如何配置database.yml?设置此 MySQL 数据库的步骤是什么?我们已经安装了 mysql2 gem 并在我们的 Gemfile 中。

database.yml 需要是什么样子才能使用 MySQL 进行部署?

数据库是否需要如数据库名称中那样的特定名称?

我们是在我们的机器上运行 rake db:create 还是在我们的 Ubuntu 机器上运行它?

当前database.yml

# SQLite version 3.x
# gem install sqlite3
# 
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 2000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 2000

production:
adapter: mysql2
encoding: utf8
database: production
pool: 5
username: root
password: "mysql password"

最佳答案

您尝试过简单的连接测试吗?如果没有,这里有一个脚本来测试与数据库的连接。

#! /usr/bin/ruby

# getting required gems  
require 'rubygems'  
require 'mysql'  

## ----- test the connection -----  
# http://rubydoc.info/gems/mysql/2.8.1/frames  
# real_connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, sock=nil, flag=nil)
mysql = Mysql.connect('localhost', 'root', 'password', 'db_name', 3006, '', '')  

## ----- if connected, will list databases -----  
puts mysql.list_dbs().to_s  

如果“mysql”未正确安装,您将必须自定义配置安装属性。在我的 Mac(与 Linux 机器不同)上,我引用了 this blog post得到这样的东西,

sudo env ARCHFLAGS="-arch x86_64"gem install --no-rdoc --no-ri mysql -- --with mysqlconfig=/usr/local/mysql/bin/mysql_config



更新 - 必须为不同的 ruby​​ 版本重新安装 mysql gem,并且删除架构符号允许我安装 gem。

sudo gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

关于mysql - 需要从SQLite3切换到MySQL,并且想用MySQL进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354638/

相关文章:

php - MySQL查询到多维

php - "Parse error: syntax error, unexpected T_STRING"与远程服务器一起使用时,会被抛出到之前工作的代码中。为什么?

ruby-on-rails - Heroku 错误 H13

ruby-on-rails - rails : How do I add an additional parameter to resource-based link_to call?

mysql 1111 组函数使用无效

mysql - 使用UPDATE函数批量更新记录

ruby-on-rails - 我在哪里将我的 ui.router 模板放在 rails 应用程序中?

ruby-on-rails - Ruby - 哈希数组 - 未定义的方法 'each' 错误

html - 我打印 MySQL 数据的 CGI 脚本有什么问题?

mysql - 遍历 Array 并在 ruby​​ 中使用变量