MySQL kimlik doğrulama hatası Nedenleri: "Erişim 'xxx' kullanıcısı için reddedildi @ 'yyy'"?

4 Cevap php

What possible reasons could exist for MySQL giving the error “Access denied for user 'xxx'@'yyy'” when trying to access a database using PHP-mysqli and working fine when using the command-line mysql tool with exactly the same username, password, socket, database and host?
Update:
There were indeed three users in the mysql.user table, each one with a different host (but with the same hashed password), one was set to localhost, one to 127.0.0.1 and one to the machine’s host name. Deleting two of them and changing the host of the third to “%” had only one effect: now the access is denied using the command-line tool also. I did do a

 select user();

Komut satırında bundan önce ve php reddedildi aynı xxx @ yyy vermiştir.

4 Cevap

Durumda herkes hala ilgileniyor: Ben de bu sorunu çözmek yapmadım. Sorun, ben MySQL koşuyordu donanım ile oldu gibi gerçekten görünüyor. O zamandan beri böyle uzaktan bir şey görmedim.

Bazen PHP / MySQL localhost ve 127.0.0.1 arasında bir fark var

In mysql you grant access based on the host name, for localusers this would be localhost. I have seen php trying to connect with 'myservername' instead of localhost allthough in the config 'localhost' was defined.

127.0.0.1 için mysql erişim izni ve 127.0.0.1 port 3306 üzerinden php bağlanmayı deneyin.

After I read your update I would suspect an error in/with the password. Are you using "strange" characters in your PW (something likely to cause utf-8/iso encoding problems)?

Bilgisayar alanında% kullanarak kullanıcı herhangi bir ana bilgisayardan bağlanmak için izin verecek. Yani yanlış olabilir tek şey şifre olacaktır.

Can you create another user. whith the "grant all on all for '...'@'%' identiefied by 'somesimplepw'" syntax, and try to connect with that user? Don't forget to 'flush privelidges'

Yeni bir kullanıcı klick here nasıl oluşturulacağı hakkında bilgi için

Bugün benim web barındırma sağlayıcı FTP hizmeti biraz sorun yaşıyor, bu yüzden benim web sitesi üzerinde çalışan yerel bir sanal web sunucusu gerçekleştirmek için karar. Ben phpMyAdmin ile EasyPHP 14.1 yüklü ve ben tabloları ile benim kullanıcı ve benim veritabanı oluşturuldu.

İlk denemesi: başarısız oldu. Ben aradığım tablo yoktu fark etti. -> Ben eksik tablo oluşturma çözüldü.

İkinci denemesi: başarısız oldu. Ben yeni bir kullanıcı için belirlenen kullanıcı adı benim bağlantısı için kullanılan adınızdan farklılaştıran olduğunu fark etti. -> Ben adı düzenlenebilir.

Üçüncü denemesi: başarısız oldu. Ben yeni veritabanı adı benim sitede bağlantısı için kullanılacak veritabanı adı farklılaştıran olduğunu fark etti. -> Ben db adını düzenlenebilir.

Forth girişimi: başarısız oldu. Ben yeni kullanıcı ayrıcalıkları arasında "Hibe" orada olmadığını fark etti. Ben bile ne "Hibe" anlamına gelir biliyorum, ama bunu sağlamak için denemek izin vermeyin -> Added "Hibe" ayrıcalık.

Beşinci girişimi: ben kazandım!

Benim küçük macera birisi yardımcı olabilir umuyoruz. =)