PHP &

2 Cevap php

Ben sadece yerel bir geliştirme ortamına sahip olmak için yüklü ve benim Macbook üzerinde Apache, MySQL, PHP ve phpMyAdmin yapılandırmış. Ben yerel sunucuya benim projelerinden biri üzerinde taşındıktan sonra ama ben mysql_query benim aramaların birinden garip bir MySQL hatası alıyorum ():

Access denied for user '_securityagent'@'localhost' (using password: NO)

Her şeyden önce, ben MySQL yolluyorum sorgu tüm geçerli olduğunu, ve ben bile mükemmel sonuç ile phpMyAdmin aracılığıyla deneyemedim ettik. Ben en az 4 diğer mysql bağlantıları ve sayfa başına sorguları varken İkincisi, hata mesajı sadece burada olur. Mysql_query Bu çağrı () yeni oluşturulan veya değiştirilen maddeler için veri işler gerçekten uzun bir işlevi sonunda ne olur. Bu temelde ne yapar:

  1. Makale formdaki tüm verileri toplamak (vb başlık, içerik, tarih,.)
  2. Toplanan verileri doğrulamak
  3. Veritabanına bağlanmak
  4. Dinamik doğrulanmış makale verilere dayalı SQL sorgusu oluşturmak
  5. Bağlantıyı kapatmadan önce veritabanına geçecektir

Oldukça basit, biliyorum. Ben bu yüzden bazı rasgele hata bahsediyoruz Apple'ın Developer Connection bir makale bu geldi hızlı bir aramadan sonra adı "_securityagent" tanımadı:

Mac OS X's security infrastructure gets around this problem by running its GUI code as a special user, "_securityagent".

Açıklamalarda Frank tarafından önerilen Yani mysql_connect kullanılan tüm değişkenler üzerinde var_dump () () çağrısı, ve (kullanıcı adı elbette "_securityagent" değil) doğru değerleri döndürür her zaman koymak. Ve ben () mysql_query çağırdığınızda seni meydana gelen bu hatayı nasıl tutabilirim - herkes 'securityagent' benim veritabanına bağlanmaya çalışıyor neden herhangi bir fikir varsa Böylece ben merak ediyorum.

2 Cevap

Adı açıkça belirtilmemişse, MySQL mevcut sistem kullanıcı adını kullanarak bunu tahmin etmeye çalışır.

Bunu kabul etmek zorunda değilsiniz, sadece açıkça istediğiniz kullanıcı adını belirtmeniz gerekir.

- Nasıl size bağlayan konum nasıl bağlıdır. phpMyAdmin bu kadar halinde config.inc.php gibi satırı ekleyin:

$cfg['Servers'][0]['user'] = 'Eirik';

(manual bakınız)

Önceden yapılmış paketi kullanarak yerel AMP sunucusu kurmak mı, yoksa ilgili OS özgü indir paketleri yoluyla vb MySQL, PHP, yüklediniz mi? Apache, MySQL, ve PHP4 / 5 kurma gerçek bir PİDE olabilir.

Eğer kurulum ile ilgili sorunlar yaşıyorsanız I'd recommend MAMP. Gerçekten hile yapar bir şık all-in-one paket. Sen hala istediğiniz tüm yapılandırma dosyalarına erişebilir, ve her şey sistem üzerinden MAMP klasörü yerine yayılması yer almaktadır. Apple Apache / PHP önceden yüklenmiş sürümünü yükseltir Eğer önceden yüklenmiş Apache / PHP kullanarak durumunda olduğu gibi, makine özgü yapılandırma geçersiz olmaz.