数据库 rails 怎么连接 mysql?

welsonla · 2012年03月02日 · 最后由 msy 回复于 2017年03月06日 · 18406 次阅读

database.yml

development:
  adapter: mysql2
  host: 127.0.0.1
  database: blog_db
  pool: 5
  username: root
  password: root
  socket: /tmp/mysql.sock


本地已经安装了 mysql 数据库

rails server


提示

ActiveRecord::ConnectionNotEstablished


我也尝试过

gem install mysql 
bundle install


但是都不行,求高人指点

把密码去掉看看 我记得不知道什么版本的 mysql 开始,本地的连接是不需要也不能要密码的

#1 楼 @azhao 也不行,您都是怎么连接 mysql 的,gem 可以安装吗?

try gem install mysql2

socket: /tmp/mysql.sockhost: 127.0.0.1只要一个,默认的 mysql 账户是 root 密码为空,你要逐个排除是什么的错误,这些问题应该想想之后在提出来

你的 gemfile 里如果已经有了 gem 'mysql2' 的话,bundle install 如果已经成功,那就应该可以的

问题就剩下 1.mysql 启动没有

2.数据库建立没有

@welsonla

  1. 先确认自己的 mysql 服务进程 mysqld 在运行着,可以使用ps aux | grep mysql看看
  2. Gemfile 中加入 gem 'mysql2'
  3. 确认 mysql 帐号密码正确,一般安装好的都是 mysql 默认都是用户名 root,无密码,这样是可以直接登录的
  4. 你需要先使用 mysql 链接 mysqld(第一步开启的服务端),之后手动创建 blog_db 数据库,rails 是不会自动创建 mysql 的数据库的(里面的各个表你不需要创建,这是 active_record 的工作)。

看你 error log 应该是 mysqld 没运行

#4 楼 @geekontheway 这些我确实都试过了

先命令行 mysql 确定你的用户名和密码,连接 mysql 的 gem 包使用 mysql2

#7 楼 @welsonla 在 shell 里手动执行

mysql -uroot -proot  #确定mysqld运行且账户密码正确

show databases; #确定有blog_db这个数据库

新建了 rails 项目之后,配置好 database.yml,然后在当前目录 rake db:create 就会自动创建这个数据库,另外要注意 database.yml 是 yaml 文件,语法严格

这儿是一个database.yml 的例子

这些都可以操作吗

#9 楼 @geekontheway thanks,原来是 yaml 写的不标准。 @all,thanks a lot

#5 楼 @azhao 如果没有呢?

13 楼 已删除

我的是因为 mysql 的版本

需要 登录 后方可回复, 如果你还没有账号请 注册新账号