Mysql2 ::错误(用户’root’@’localhost’拒绝访问(使用密码:NO)):
只需在CentOS 5服务器/ apache / passenger上使用mysql(mysql2 gem)设置一个新的rails 3.1.3应用程序…我已正确设置数据库和该数据库的用户,我已将登录和信息添加到我的数据库中。 yml文件…我可以生成东西,并且rake db:migrate ok但是“我们很抱歉,但出了点问题。” 消息正在浏览器中呈现,此消息显示在我的production.log文件中!
在2011-12-29 19:52:35 -0600开始获取xx.xxx.xx.xxx的“/”
Mysql2 ::错误(用户’root’@’localhost’拒绝访问(使用密码:NO)):
很奇怪,我没有使用“root”作为database.yml中的登录信息…有什么建议吗?
development: adapter: mysql2 encoding: utf8 reconnect: false database: the_db_I_made pool: 5 username: the_user_I_made password: the_password socket: /var/lib/mysql/mysql.sock production: adapter: mysql2 encoding: utf8 reconnect: false database: the_db_I_made pool: 5 username: the_user_I_made password: the_password socket: /var/lib/mysql/mysql.sock
一堆问题/建议:
-
你能用终端连接到数据库吗?
mysql -u root -p
-
另外,你有没有在开发模式下尝试过这个? 如果是,请分享结果。
-
尝试删除
socket: /var/lib/mysql/mysql.sock
-
gem安装是否正确?
gem check mysql2
编辑:
开发和生产模式有很多不同(包括但不限于环境变量,如数据库连接字符串,资产预编译,不同级别的日志记录,错误页面上的自定义调试信息)
**尴尬!! **
您尚未在配置中包含“host”属性!
试试这个:
production: adapter: mysql2 encoding: utf8 reconnect: false host: your_host #<----- normally localhost database: the_db_I_made pool: 5 username: the_user_I_made password: the_password socket: /var/lib/mysql/mysql.sock
好吧,我想这都是我学习曲线的一部分:)
结果是这样的:我最初安装的乘客的gem是版本3.0.9,我做了一个gem更新–system并安装了版本3.0.11。 所以服务器认为它使用的是3.0.11版,我仍然指向我的rails_server.conf文件中的3.0.9库。 我找到了如何在http://blog.phusion.nl/上升级
- 在Ubuntu中1)/ usr / bin / mysql_secure_installation 2)在终端中运行,按照步骤仔细更改mysql密码。完成所有操作。然后转到database.yml更改以前所创建的密码。 运行rails服务器并检查应用程序..它将工作
你创建了数据库“the_db_I_made”吗?
首先创建它,然后只运行它,否则它将连续显示此错误。
现在尝试调整它。
对我来说因为没有数据库而给出错误。 所以我创建了一个使用:
$ rake db:create
问题解决了:D
- Ruby / MySQL获取单行但仍使用.each?
- 尝试rake db:migrate时,未在rails项目中选择数据库
- 无法加载此类文件 – mysql2 / 2.4 / mysql2(LoadError) – windows
- 如何使用em_mysql2解决’连接仍在等待结果’错误
- LOAD DATA LOCAL INFILE使用mysql2 gem导致格式错误的数据包错误
- 错误:’rake / rdoctask’已过时且不再受支持
- Rails开发 – 无法连接到’localhost’上的MySQL服务器(10061)
- 如何使用ruby mysql2执行事务
- mysql不尊重my.cnf中的wait_timeout设置