转载:
问题是这样的,我本来一直用suse的,安装的mysql是系统自带的,所以那个myslq.sock文件默认会在/tmp/mysql.sock。这样使用ror就很正常了。但最近改了ubuntu之后,我的myslq是apt-get安装的。我配置了ror环境之后,发现新建scaffold的时候有问题,说找不到/tmp/mysql.sock.不知道在ubuntu上用ror的朋友有没有遇见过
分析了之后,应该是rails默认会去找/tmp/mysql.sock这个文件。但新的mysql并没有把这个本地socket文件放到那个目录,所以有两个选择。
1,配置rails,使它能去找正确的mysql.sock
2,配置mysql,修改路径
由于对mysql比较熟悉点,就采用第二种方法了。
下面是一个配置的参考,摘自我自己的日常笔记
problem: ror can't find the socket file of myslq
Rreason: the default 'mysql.sock' is not in the '/tmp/mysql.sock'.(this is default position of other *unix system).so we should change the configuration of mysql.
step1: backup the file /etc/mysql/my.cnf and /etc/mysql/debian.cnf
setp2: edit these 2 files,change the path of mysql.sock. ( the original name may be mysqld.sock) to the wanted path, such as /tmp/mysql.sock.