2016-03-22 12 views
0

Yakın bir zamanda, Laravel'in homestead sanal kutusuyla, vagrant kullanarak XAMPP kullanarak yerel geliştirmeden atlamaya başladım. Her şey güzel çalışıyor, ama veritabanlarımın nasıl çalıştığını gerçekten anlamıyorum. Bu konu hakkında internete dağılmış bir kaç tane söz var ... bu yüzden basit bir şeyi kaçırdığımı farz ediyorum.Laravel: Vagrant İçinde SQL Veritabanına Bağlanma

    varsayılan bir oturum açarak HeidiSQL ile benim veritabanlarını görüntüle
  • MYSQL sunucusuna dahil, XAMPP başlatın
  • , 'kök', '' (şifre boş)
  • :

    İşte benim önceki kurulum/iş akışı var

    'connections' => array(
    
    'mysql' => array(
        'driver' => 'mysql', 
        'host'  => 'localhost', 
        'database' => 'primary_db', 
        'username' => 'root', 
        'password' => '', 
        'charset' => 'utf8', 
        'collation' => 'utf8_unicode_ci', 
        'prefix' => '', 
    ) 
    

    )

    :
  • Bağlan laravel ile aşağıdaki kullanarak

OKMANLATMANIN TERCİHLERİ - şimdi bu sitede Vagrant ile çalışıyorum, bu veritabanına bağlanmak için ne yapmalıyım?

Teşekkürler.

DÜZENLEME Bu özel proje laravel 4.2 (diğer şeyler arasında hiçbir .env dosyası) üzerinde çalıştığı

+0

Özür dilerim, ne demek istiyorsun? – Inigo

+0

Ana yapılandırma dosyasında varsayılan veritabanı \t 'default' => 'mysql' kullanılarak MySQL olarak ayarlanmıştır. İstediğin şey bu mu ..? – Inigo

+0

Laravel, bu şekilde manuel olarak bağlanmanızı gerektirmez .... – Inigo

cevap

1

Kutuyu yukarıdan aşağıya başlattığınızda, /app/config/local/database.php dosyasındaki yapılandırmayı kullanmak için laravel'e söyleyen ortam değişkenlerini ayarlar. Bunlar serseri kutunun içinde oluşturulan veritabanının varsayılan parametrelerdir

'mysql' => array(
    'driver' => 'mysql', 
    'host' => 'localhost', 
    'database' => 'homestead', 
    'username' => 'homestead', 
    'password' => 'secret', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '',) 

:

Sen böyle bir şey olması gerekir.

Daha sonra eski verilerinizi kullanmak istiyorsanız, bir dökümü yapmanız ve yeni içeri aktarmanız gerekir. Veritabanına aynı kimlik bilgileriyle bağlanabilirsiniz. Değişen tek şey, bağlantı noktasıdır: Kutunun içinde, normal 3306'dır, ancak homestead, ana makine için 33060'tan 3306'ya bir bağ oluşturur. Bu nedenle, eski çöplüğünüzü bağlamak ve almak için 33060 numaralı bağlantı noktasını kullanmalısınız.

+0

Cevabınız için çok teşekkürler. Evet, şimdi anlamaya başlıyorum - veritabanı.php dosyasında tam olarak varmış gibi var ve kesinlikle bağlanıyor. Sanırım sorunumun bu parçasını çözdünüz - çok teşekkürler. Ne yazık ki HSQL, bu soruna benzer bağlantı kuramıyor gibi görünüyor: http://stackoverflow.com/questions/29885693/cant-connect-to-vagrant-using-heidisql-cant-connect-to-mysql-server -on-loca Şu anda bir fark yaratıp yaratmadığını görmek için en son HSQL'i indiriyor. Herhangi bir oranda bir kene ve bir vardir .. :) – Inigo

+0

@Inigo Sadece hatırladım (Homestead'i kullandığımdan beri çok uzun zaman geçti), belki de vagrant kutusunun ipi 127.0.0.1 değil, [Homestead'e bakın .yaml dosyası] (https://github.com/laravel/homestead/blob/2.0/src/stubs/Homestead.yaml), en üstte bir IP olmalıdır (muhtemelen 192.168.10.10). Doğru hatırlıyorsam, 127.0.0.1 yerine kullanmanız gereken ip bu. – Cithel

+0

Evet, şu an 192.168.10.10- her şeyin güzel çalıştığını söylemekten memnuniyet duyuyorum :) teşekkürler! – Inigo

0

varsayılan Homestead ayarları kullanarak yapıyorsanız, .env dosyasında bu kimlik bilgilerini kullanmayı deneyin:

DB_HOST=127.0.0.1 
DB_PORT=33060 // Or other port, whch you have configured 
DB_DATABASE=biznes 
DB_USERNAME=homestead 
DB_PASSWORD=secret 
+0

Üzgünüz, bu proje ile Laravel 4.2'de olduğumu belirtmeliydim, yani .env dosyaları yok .. – Inigo

+0

Sonra bu kimlik bilgilerini yapılandırma dosyanızda kullanmayı deneyin. –