2016-03-28 21 views
0

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?

cevap

0

Sorun MySQL veya Vagrant ilişkilidir sanmıyorum, bu PHP kodundan gelebilir (? Batmana ve sorgudan dönüş verilerini ölmeye çalıştı var)

Hem Web sunucusu ve MySQL sunucusunda aynı sunucuda "bağlama adresi" değişmesi gerekmiyor. Etkilemez.

MySQL'e gönderilen bir sorgulama günlüğünüz var, bu nedenle web ile MySQL arasındaki bağlantı hakkında hiçbir sorun yoktur.

Sorunu daha kolay algılamak için, db'nizi test_db.php gibi test etmek için yeni bir PHP dosyası oluşturmalı, hata bildirimini ve display_errors özelliğini açmalısınız. ve

Ben sorgu kimlik doğrulaması için seçimi hakkındadır fark ne olduğunu görün, bu nedenle, kimlik doğrulaması ile sorun var

size yardımcı Umut vb senin oturumu yapılandırmasını, oturum başlatma, oturumu yok, kontrol edebilirsiniz!

+0

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

+0

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. –

İlgili konular