1. 先确认自己的mysql服务进程mysqld在运行着,可以使用ps aux | grep mysql看看
2. Gemfile中加入gem 'mysql2'
3. 确认mysql帐号密码正确,一般安装好的都是mysql默认都是用户名root,无密码,这样是可以直接登录的
4. 你需要先使用mysql链接mysqld(第一步开启的服务端),之后手动创建blog_db数据库,rails是不会自动创建mysql的数据库的(里面的各个表你不需要创建,这是active_record的工作)。
用ruby on rails连接Mysql5.6时,出现了很多意想不到的问题。
1 系统ubunt14.04,ruby 1.8.7,rails 2.3.11,mysql5.6
2 安装mysql客户端与服务器端
安装服务器端 sudo apt-get install mysql-server
安装客户端 apt-get isntall mysql-client
3 此时运行ruby on rails项目是,会报错,要求你 gem install mysql,安装mysql的驱动,
在rails2.2版本后,此驱动被移除了rails。
命令行运行gem install mysql,出现了如下错误
从网上查找了好多,比如复制mysql的lib中的文件等等,但是都没有效果,后来找了一方法
MYSQL API开发包 sudo apt-get install libmysqlclient-dev,运行后如图
此时再运行gem install mysql,结果如图
4 到此ruby on rails 的mysql驱动问题就已经解决了;
rails的确是来的方便,一个rails generate scaffold命令下来就可以生成view、controller和model的所有文件,然后再执行rake db:migrate就可以生成相应的数据库表结构。而就是这个简单的rake db:migrate却产生了预想不到的问题:首先交代一下背景:rails创建项目时,默认使用了SQLite数据库。为了快速上手,我换成了MySQL,也修改了相应的配置文件config/database.yml。
第一个问题:
rake aborted!
uninitialized constant www.hbbz08.com Rake:DSL
原因:默认安装的rake版本过低,不兼容
解决办法:升级rake
步骤:1. 安装0.9.2版本的rake,gem install rake -version=0.9.2
2. 卸载原来版本(可以通过gem -list rake查看当前安装的版本), gem uninstall rake -version=0.8.7
3. 更新所有组件,bundle update
4.运行 rake db:migrate。于是出现第二个问题。
第二个问题:
rake aborted!
Mysql::Error: query: not connected: SHOW TABLES
原因:MySQL5.1自带的libmySQL.dll和当前的rails不兼容
解决办法:使用旧版本替换。
步骤:1. 下载旧版本的libmySQL.dll: ht/instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
2. 将下载的文件放到%RUBY_HOME/bin目录下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)