Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么我会得到;拒绝用户访问';根'@';本地主机'&引用;?_Mysql_Ruby_Sinatra - Fatal编程技术网

Mysql 为什么我会得到;拒绝用户访问';根'@';本地主机'&引用;?

Mysql 为什么我会得到;拒绝用户访问';根'@';本地主机'&引用;?,mysql,ruby,sinatra,Mysql,Ruby,Sinatra,我使用以下代码连接到MySQL数据库: username="root" password="admin" host="localhost" db="one" Mysql.new(host,username,password,db) 我在执行代码时遇到此错误: Access denied for user 'root'@'localhost' (using password: YES) 如果我使用Mysql.new('localhost'、'root'、'admin'、'one'),那么它可以

我使用以下代码连接到MySQL数据库:

username="root"
password="admin"
host="localhost"
db="one"
Mysql.new(host,username,password,db)
我在执行代码时遇到此错误:

Access denied for user 'root'@'localhost' (using password: YES)
如果我使用
Mysql.new('localhost'、'root'、'admin'、'one')
,那么它可以正常工作

当我打印所有变量时,会打印正确的值


请帮我找出问题所在。

基本故障排除101:

如果文字字符串有效,而变量赋值无效,那么怀疑变量赋值;其中一个可能有问题,例如看不见的角色

尝试:

然后尝试:

vars = %w(localhost root admin one)
Mysql.new(*vars)
或:

或:

这个想法是从你所知道的工作开始,然后向后工作,直到分配给变量起作用,或者它中断。在这一点上,你要么修复了问题(可能不知道为什么),要么知道是什么打破了它。不管怎样,你都领先

你说:

当我打印所有变量时,会打印正确的值

如何打印变量?我们看不到你的终端,你也没有给我们这些信息。如果它是一个看不见的字符,这是复制和粘贴文本时常见的问题,那么它可能在打印时不显示。检查变量应该会有所帮助,因为它们应该显示为转义值:

password = "root\u00a0"

puts password
# >> root 

puts password.inspect
# >> "root "

puts password.chars
# >> r
# >> o
# >> o
# >> t
# >>  

puts password.unpack('C*').map{ |s| s.to_s(16) }
# >> 72
# >> 6f
# >> 6f
# >> 74
# >> c2
# >> a0

否则,我将回到我最初的评论,即这是您如何设置MySQL根帐户的问题,您应该阅读“.”

基本故障排除101:

如果文字字符串有效,而变量赋值无效,那么怀疑变量赋值;其中一个可能有问题,例如看不见的角色

尝试:

然后尝试:

vars = %w(localhost root admin one)
Mysql.new(*vars)
或:

或:

这个想法是从你所知道的工作开始,然后向后工作,直到分配给变量起作用,或者它中断。在这一点上,你要么修复了问题(可能不知道为什么),要么知道是什么打破了它。不管怎样,你都领先

你说:

当我打印所有变量时,会打印正确的值

如何打印变量?我们看不到你的终端,你也没有给我们这些信息。如果它是一个看不见的字符,这是复制和粘贴文本时常见的问题,那么它可能在打印时不显示。检查变量应该会有所帮助,因为它们应该显示为转义值:

password = "root\u00a0"

puts password
# >> root 

puts password.inspect
# >> "root "

puts password.chars
# >> r
# >> o
# >> o
# >> t
# >>  

puts password.unpack('C*').map{ |s| s.to_s(16) }
# >> 72
# >> 6f
# >> 6f
# >> 74
# >> c2
# >> a0

否则,我将回到我最初的评论,即这是您如何设置MySQL根帐户的问题,您应该阅读“。

我不明白为什么这是一个Sinatra或Ruby问题。看起来您的MySQL数据库密码与您认为的不同。除非您要向我们显示根帐户的配置,以及数据库中的密码,以便我们将其与您发送的内容进行比较,否则我们无法真正为您提供很多帮助。我建议你仔细阅读这本书;在管理帐户方面,MySQL并不是最简单的DBM。我在ruby中使用这段代码。没有mysql数据库密码是一样的。。如果我使用Mysql.new('localhost'、'root'、'admin'、'one'),那么它工作得很好。这闻起来很像:通读右边的“相关”问题。我不明白为什么这是一个Sinatra或Ruby问题。看起来您的MySQL数据库密码与您认为的不同。除非您要向我们显示根帐户的配置,以及数据库中的密码,以便我们将其与您发送的内容进行比较,否则我们无法真正为您提供很多帮助。我建议你仔细阅读这本书;在管理帐户方面,MySQL并不是最简单的DBM。我在ruby中使用这段代码。没有mysql数据库密码是一样的。。如果我使用Mysql.new('localhost'、'root'、'admin'、'one'),那么它工作得很好。这闻起来很像:通读右边的“相关”问题。哦,是的,当我执行下面的语句时输入密码。检查我得到了“admin\n”。您能告诉我如何删除它吗\n??谢谢。您提供了这么好的调试技巧:)是的,我得到了password.gsub(“\n”,”)。这句话解决了我的问题。谢谢你,伙计!如果你能包含一小段代码,准确地再现问题,我们可以在一分钟内解决问题。听起来好像您正在使用
get
从键盘读取信息,或者错误地读取文件。两者都是微不足道的修正。我必须输入一段代码。是的,我正在从配置文件中读取用户名和密码。哦,是的,当我执行下面的语句puts password.inspect时,我得到了“admin\n”。您能告诉我如何删除它吗\n??谢谢。您提供了这么好的调试技巧:)是的,我得到了password.gsub(“\n”,”)。这句话解决了我的问题。谢谢你,伙计!如果你能包含一小段代码,准确地再现问题,我们可以在一分钟内解决问题。听起来好像您正在使用
get
从键盘读取信息,或者错误地读取文件。两者都是微不足道的修正。我必须输入一段代码。是的,我正在从配置文件中读取用户名和密码。
password = "root\u00a0"

puts password
# >> root 

puts password.inspect
# >> "root "

puts password.chars
# >> r
# >> o
# >> o
# >> t
# >>  

puts password.unpack('C*').map{ |s| s.to_s(16) }
# >> 72
# >> 6f
# >> 6f
# >> 74
# >> c2
# >> a0