MySQL sunucusunda vagrant ayarlıyorum ve PHP web sitesinin localhost DB'yi kullanması ve sorunların çalışmasını sağlamaya çalışıyorum (Her ikisi de, kod ve MySQL aynı Vagrant VM'de çalışıyor). Ancak, Sequel Pro ile kurulum erişimim var ve DB'ye aynı kullanıcıyla erişebiliyor ve sorguları çalıştırabiliyorum. Web sitesinde, sorgular tamamlanmadı.PHP/Vagrant - Host Erişimi Ana Bilgisayar DB
MySQL:
mysql> select db,host,user from mysql.db;
+-----+-----------+------+
| db | host | user |
+-----+-----------+------+
| ojs | localhost | ojs |
| ojs | localhost | ojs2 |
| ojs | localhost | root |
+-----+-----------+------+
3 rows in set (0.00 sec)
Yani 3 kullanıcı DB atanan - hayatı kolaylaştırmak için, emin tüm izinleri Y
idi yapmak için root
kullandı. Benim /etc/mysql/my.cnf
yılında
Ben skip-internal-locking
dışarı yorumladı ve bind-address
dışarı veya I (gibi bir kullanıcıyı doğrulamak) tarayıcısından bir sorgu çalıştırmak istediğinizde 0.0.0.0
olarak ayarlayın ya çalıştı. Ben /var/log/mysql/mysql.log
içine bakmak, son sorgu: Sorgu çalışıyor ve benim mysql
bir bağlantı sarfettiğini, kontrol gibi
160328 23:00:32 127 Connect [email protected] on ojs
127 Query SELECT `User`.`id`, `User`.`email`, `User`.`fname`, `User`.`lname`, `User`.`default_phone`, `User`.`default_ext`, `User`.`password`, `User`.`datecreated_ts`, `User`.`lastlogin_ts`, `User`.`last_deliveryaddress_id`, `User`.`last_billingaddress_id`, `User`.`auth_level`, `User`.`no_radio_email` FROM `User` WHERE `User`.`email` = '[email protected]' AND `User`.`password` = '5f4dcc3b5aa765d61d8327deb882cf99'
127 Quit
Yani görünüyor.
İki gündür deniyorum ve temel bir şey eksik olduğuma başlıyorum. Biri bana doğru yönde işaret edebilir mi lütfen?
PHP, sunucunun dışındaysa (yani DB üretimimize bağlanabilir) Veritabanı'na bağlanacaktır. PHP'de hata günlüğünde bir hata yok ve döküm sorguları, DB'yi bulamıyormuş gibi "false" i döndürmeye devam ediyor. Ancak bakmaya devam edeceğim. Teşekkürler. – Bardworx
Dosyayı yazmanızı ve ayrı bir dosya ayırmanızı öneririz. Bağlantıyı test etmek için PDO kullanır ve test dosyasında geçirdiğiniz sorguya göre mysql günlüğünü kontrol edin. Ayrıca, sorgunuzun büyük ve küçük harflerini de kontrol edin, eğer sorun buysa my.cnf'inizi değiştirin [mysqld] Bu satırı ekleyin: lower_case_table_names = 2, ve aynı zamanda testini bağlamak için bağlama adresini 0.0.0.0'a ayarlayın Sıralı pro'dan aynı sorguyu aynı kullanıcıyla çalıştırabilirsiniz, böylece ayrıcalıklar vermek iyidir. Ve son olarak PHP'den bağlantı kurma şeklinizi kontrol edin (dbname, host, port). İyi şanslar! Sanırım sana fazla yardım edemedim. –