username="root"
password="admin"
host="localhost"
db="one"
Mysql.new(host,username,password,db)
我在執行代碼得到這個錯誤。
當我打印所有變量時,將打印正確的值。
請幫我弄清楚什麼是錯的。
username="root"
password="admin"
host="localhost"
db="one"
Mysql.new(host,username,password,db)
我在執行代碼得到這個錯誤。
當我打印所有變量時,將打印正確的值。
請幫我弄清楚什麼是錯的。
基本故障排除101:
如果文字字符串工作,變量賦值不這樣做,那麼懷疑你的變量賦值;其中一個可能有問題,比如看不見的角色。
嘗試:
vars = ('localhost','root','admin','one')
Mysql.new(*vars)
然後嘗試:
vars = %w(localhost root admin one)
Mysql.new(*vars)
或:
host, username, password, db = %w(localhost root admin one)
Mysql.new(host, username, password, db)
或:
host, username, password, db = 'localhost','root','admin','one'
Mysql.new(host, username, password, db)
這個想法是從你知道的工作開始,然後向後工作,直到分配給變量有效,或者中斷。那時你已經解決了問題(可能不知道爲什麼),或者你已經知道是什麼打破了它。無論哪種方式,你都在前方。
你說:
當我打印的所有變量的值正確打印。
如何打印變量?我們看不到您的終端,並且您沒有給我們提供這些信息。如果它是一個看不見的字符,在複製和粘貼文本時是常見的罪魁禍首,它可能在打印時不顯示。檢查變量應該幫助,因爲他們應該顯示爲轉義值:
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 root帳戶和你應該讀「的問題Access denied for user 'root'@'localhost' (using password: YES) (Mysql::Error)「。
ohh是當我執行波紋管語句 把password.inspect 我得到了「管理員\ n」。你能告訴我如何刪除\ n ?? 非常感謝。你已經給出了這樣一個很好的調試技巧:) – Jaydipsinh
雅我得到了password.gsub(「\ n」,'')。這個聲明解決了我的問題。謝謝哥們! – Jaydipsinh
如果您將包含一小段*準確*重現問題的代碼,我們可以在一分鐘內解決問題。聽起來你正在使用'gets'從鍵盤讀取信息,或者讀取文件不正確。要麼是一個微不足道的修復。 –
我不明白爲什麼這是一個Sinatra或Ruby問題。它看起來像你的MySQL數據庫密碼與你認爲的不同。除非您要向我們展示您的root帳戶的配置以及其在數據庫中的密碼,以便我們可以將其與您發送的內容進行比較,否則我們無法真正幫助您完成很多任務。我建議您仔細閱讀[MySQL帳戶管理文檔](http://dev.mysql.com/doc/refman/5.1/en/user-account-management.html);在管理賬戶時,MySQL並不是最直接的DBM。 –
我在ruby中使用此代碼。沒有mysql數據庫的密碼是不同的..如果我使用Mysql.new('localhost','root','admin','one'),那麼它工作正常。 – Jaydipsinh
這個味道很像:http:// stackoverflow。com/questions/6081339/access-denied-for-user-rootlocalhost-using-password-yes-mysqlerror?rq = 1通讀右側的「相關」問題。 –