Mysql 为什么我会得到;拒绝用户访问';根'@';本地主机'&引用;?
我使用以下代码连接到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'),那么它可以
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