mysql_real_escape_string - erişim komut çalıştırır kullanıcıya bağlı olarak engellendi?

3 Cevap php

Benim kurulum: Zend Framework w / dahili Ubuntu LAMP, uygulama

My Problem: I have a few php scripts that I trigger via cron - daily email reports, rrd data capture etc.. I launch them via a cronjob like 'php -f scriptname.php'.
When I test the scripts from the commandline, logged in as myself, everything works fine. However, when the same script executes as root (via cron OR sudo) it fails with the following errors.

Warning: Access denied for user 'root'@'localhost'
Warning: mysql_real_escape_string(): A link to the server could not be established ...

Ben biraz araştırma yaptım ve süreç Im zend framework-Bootstrap sınıfı ile çalışma nedeniyle karartılmış biraz db kimlik için kayıt sınıf çağıran hangi Zend_Db aramaları olmasına rağmen ben, Im vaktinden MySQL için bir bağlantı kurmak oldukça emin değilim . ve benzerleri.

Ben bir çözüm keşfettim: 'sudo-u myusername php-f scriptname.php' ama gerçekten Im burada yanlış ne yaptığını bilmek istiyorum ..

TIA!

3 Cevap

Zaman çocuklar için teşekkür ederiz. Deneme yanılma yoluyla ben hata benim Zend Framework uygulanmasıyla ilgili olduğunu tespit ettik. Benim bootstrap, db initalization, kayıt .. kim bilir.

Ben ZF ile çalışmayı seviyorum ederken, büyük bir zaman vampirler içine bu da böyle basit konular. Im arıyor Hepsi bir yerde () bir mysql_connect olduğunu! Ben bir şey bulmak zaman güncelleme olacak.

Çok teşekkürler ..

Warning: Access denied for user 'root'@'localhost'

Bu yanlış kullanıcı adı ve şifre ile mysql sunucuya giriş yaptığınızda olsun mesajı, ya da size izin verilmeyen bir yerden oturum açın. Bu kök host 'localhost' dan giriş ve veritabanı ve MySQL veritabanı için yeterli izinlere sahip olduğunu olabilir kontrol edin.

'sudo -u myusername php -f scriptname.php'

Belki Zend sizin sysem düzey kullanıcı kimliği alarak ve o ile mysql içine giriş için bekliyor? kontrol veya zend MySQL bağlanmak için kullandığı kimlik kılabilirsiniz?

Hiçbir veritabanı bağlantısı varsa, bu hata da ortaya çıkabilir.