今天闲来无事,在ubuntu上源码安装了mysql 5.1.57,安装过程在这里不详细叙述,在安装完后,把mysql的配置文件my.cnf放到了/etc下,即/etc/my.cnf在里面做了mysql的socket指向(/usr/local/tmp/mysql.sock)然后启动mysql,一切正常。ok,到此为止我以为万事大吉了,然后我进入到项目的根目录,rails c 进入控制台,执行一个简单的查询,问题出现了: NoMethodError: undefined method `init' for Mysql:Class不知道啥原因,一番google后,发现有人说需要安装mysql驱动,ok,于是 gem install mysql ,结果在执行安装的过程中又出现了错误:
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
没办法,继续google,原来是缺少了依赖包,ok,继续安装相关的依赖包:
sudo apt-get install libmysqlclient-dev
之后,继续 gem install mysql,ok,这次没有发现问题了,然后进入到项目的跟目录,rails c 进入控制台,执行简单的查询,完了,又报错了:Can't connect to local MySQL server through socket '//var/run/mysqld/mysqld.sock' (2),一看,很明显,在链接的时候mysql找不到socket文件,咦,但是问题来了啊,我刚刚已经把mysql配置好了啊,而且我可以进入到mysql里面去执行查询了啊,怎么现在忽然报这个socket错误呢。好吧,我来看看,我刚才的这一串操作后,给我的mysql造成了什么影响,我进入到/etc,然后进入到我的my.cnf文件,发现里面没有任何改动的迹象,奇怪了,但是当我在/etc下边ll mysql的时候发现了一个问题,在这个/etc目录下多了一个目录mysql,然后我进入到这个目录,发现里面也有个my.cnf,里面的socket指向刚好是上边报的找不到socket的路径,这就是说,在用程序链接mysql的时候,mysql读取了/etc下的my.cnf文件了,而并没有读取我的/etc/my.cnf文件,这个mysql文件目录是怎么来的呢,应该是我在前边安装libmysqlclient-dev的时候生成的。ok,问题的原因找到了,那么对于我现在遇到的问题怎么解决呢?好吧,我进入到了项目的database.yml文件,在每个环境的配置后边都加上了socket指向:socket: /usr/local/mysql/tmp/mysql.sock,ok,我再进入到项目跟目录,执行简单的查询,问题解决了,这就是说,我可以在项目里面来指定该项目用到的mysl的socket的位置。
问题是解决了,但是我们得想想啊,我不能在每个项目里面都配置这个socket吧,最好是在/etc下的my.cnf里面配置一遍,然后让mysql自己去找就可以了,我们就不用在每个项目地下都配置这个东东了,可是问题在于,现在的/etc下有两个my.cnf,到底该咋办?好吧,我们来看看,这两个文件是不是可以删除掉一个
分享到:
相关推荐
如何知道你是否击中了这个你会知道你是否点击了这个,因为你会收到一条错误消息,比如 NoMethodError: undefined method `join' for #或者也许是这样的: Unexpected error while processing request: undefined ...
nokogiri_bang_finders 这颗宝石说“Nokogiri,如果你找... content # NoMethodError: undefined method `content' for nil:nilclass # with nokogiri_bang_finders doc . at! ( 'robot' ) . content # Nokogiri::XML
一元操作大家都知道,就是表达式的操作符只有一个输入值。这个在C和Java中都很常见。今天我们要探讨一下Ruby中的一元操作符重载。 一元操作符有:+ – * !...NoMethodError: undefined method `-@’ for “Hello”:
简单电子邮件异常通知程序 用于通知的电子邮件通知程序,不依赖于 ActionMailer,可以在 Rails 之外使用,即与 Grape ... 这让 ActiveRecord 开始认为有一个 Rails 应用程序并引发NoMethodError: undefined method '
世界风java源码创客编码训练营组合 如果您正在阅读本文档,您会想...NoMethodError: undefined method `prompt' for Echo:Class 这里的错误消息告诉我们创建一个名为“prompt”的方法。 ----- 下面是我将如何向编码新手
反私 使每个新声明的protected或private方法公开。...OldClass.is_private # => NoMethodError: method `is_private' ... 执照 版权所有 2015 罗伯霍华德 根据 Apache 许可,版本 2.0(“许可”)获得许
It ran successfully once, but now when I say b=Watir::Browser.new, it produces a NoMethodError for a method 'demodulize'. I tried some stuff around and when I said require 'firewatir/firefox' , the ...
1. 快速获取正则表达式的匹配值 通常我们使用正则表达式...email.match(/(x)/)[1] # => NoMethodError [:(] email[/(x)/, 1] # => nil email[/([bcd]).*?([fgh])/, 2] # => “g” 上面例子中还有一种更简单的方法,就
一个迭代开发中的网站难免存在bug,出bug的时候客户体验就很不好了,为解决此问题,可以在class error产生的时候,触发跳转到统一提示页面,并给开发人员发邮件报错误信息,提高测试能力和用户体验。以下是核心方法...
单件方法 Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 ...str.class # => String String.title? #=> NoMethodError 另外,除了上面使用的定义方法,还可以通过Obje
class Test2 < Test xss=removed> 这里加上self就不能调用,private method `test_print' called for # (NoMethodError) test_print #=> 不加self就能调用 end end Test2.new.test_print2 为什么不加self的话
《 Rails指南》中的当前步骤: : 与在控制器和视图之间传递数据的典型方式相反(直接使用实例变量),我将使用控制器中定义的属性访问器方法,以减少由于实例变量名称的拼写错误而导致NoMethodError出现nil的可能性...
哈希点 HashDot允许您使用点语法获取和设置Ruby哈希属性。 require 'hash_dot' user = { name : 'Anna' , ... title #=> NoMethodError user . job . title = 'Engineer' user . job . title #=> 'Engineer' user
NoMethodError。 作为德扬·西米克: 为什么要写这个: entry.at('description') && entry.at('description').inner_text 当你可以这样写: entry.at('description').andand.inner_text 为什么呢! 作为奖励,安装...
特别注意捕获常见的 Ruby 异常并提供简单的英文解释(想想NoMethodError 、 NameError 、 ArgumentError等)。 该计划还向新手程序员介绍了语义命名、正确的 Ruby 缩进以及他们将在 Sinatra 和 Rails 等 Ruby 框架...
创建一个NoMethodError arr 3. 8 a =“ e” b =“ A” c =无 在[]中使用内部字符串不起作用,将其更改为名称[3] ='Judy'会更改位置。 即玛格丽特成为朱迪。 ################################################ ##...