我们目前使用 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/