2007年1月31日星期三

ubuntu下使用 mysql与rails连接

rails应用无法连接mysql

(in /home/vividness/rails_works/test)
rake aborted!
No such file or directory - /tmp/mysql.sock

(See full trace by running task with --trace)

原因: rails默认的mysql连接路径为/tmp/mysql.sock,而实际的往往不在此路径下,可以通过/etc/my.cnf查看实际的路径
如,偶的是:socket=/var/lib/mysql/mysql.sock

方法一:
在rails的config/database.yml中指定,如
development:
adapter: mysql
database: demo_development
username: root
password:
host: localhost
socket: /var/lib/mysql/mysql.sock

方法二:
建立软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

都可以,推荐方法一




那就找到mysqld.sock,在database.yml中指定

ubuntu 一般是 /var/run/mysqld/mysqld.sock

database.yml相应为

socket: /var/run/mysqld/mysqld.sock

 

没有评论: