PHP veritabanı bağlantısı

4 Cevap php

PHP bir uzak MySQL veritabanına bağlanmak için gerekir.

Specifically I have this as a constant: define("DATABASE_SERVER", "localhost"); ...

$db = @mysql_connect(DB_SERVER, DB_USER, DB_PASS);

Benim yerel makineye siteyi kopyalamak istiyorum ama hala ana veritabanına bağlanmak.

Bunu yapabilir miyim? eğer öyleyse, nasıl? Ben tüm FTP erişimi olduğunu.

4 Cevap

Ben veritabanı sunucusu uzak bağlantıları reddederek olduğunu tahmin ediyorum. Eğer cPanel varsa belirli IP aralıkları sağlayacak "Uzak veritabanı erişimi" gibi bir şey adlı bir bölüm var.

Ben size söz veritabanı ihracat ve yerel olarak ithal öneririz. Bu şekilde, size eğer pisliği canlı verileri yok olmaz.

Birçok değilse çoğu, hosting sağlayıcıları da phpMyAdmin gibi bir DB arabirimi sağlar. Sen oradan veritabanı verebilirsiniz.

+1 Gnud. Eğer could bir kamu internet arayüzü (*) harici erişim için dinlemek için yapılandırmak bile, geliştirme çalışmaları için üretim veritabanı kullanmanız gerekir. Bir fare kayma ve önemli canlı veri üzerinden karalama ediyoruz. Eğer onlar çalışıyor ve test olduğunuzda canlı sunucuya kod değişiklikleri zorlayabilir hangi yerine, kendi başına bir gelişme sunucu üzerinde çalışıyor olmalıdır.

(*: Kendisi çok kötü bir fikirdir:. Şifreler çok zayıf ya da çok hızlı bir şekilde otomatik sondalar tarafından kesmek almak için gidiyoruz mevcut açıkları ile MySQL eski bir sürümünü çalıştırıyorsanız)

Normalde mysqldump dbname > dbdump.sql komutunu kullanarak kabuk veritabanı ihracat, ve mysql dbname < dbdump.sql içine aktarmak tarafından yerel sunucu üzerinde ithal ediyorum. Ayrıca kullanabilirsiniz sunucuda yüklü bir MySQL yönetici web arayüzü olabilir. Eğer var tüm FTP Ama eğer, gerçekten geliştirme çalışmaları yapmak için gerekli araçları verilmemiştir. Eğer ile site test için boş veya kukla veritabanı alabilirsiniz bakın.

(Dahası, FTP SFTP kullanarak gereken bu yüzyılda gerçekten ... kötü bir iş.)

Basit yaklaşım DATABASE_SERVER database (eşit anlamlı ya da bir şey) olarak tanımlanan ve hosts dosyasına bir giriş koymak sahip olmaktır. Yerel makinede bu sunucuda bu 127.0.0.1 işaret edecek, uzak adres işaret edebilir.

define('DATABASE_SERVER', database);

Windows siteleri dosya:

c:\windows\system32\drivers\etc\hosts

ile:

database <remote_ip>

Linux:

/etc/hosts

ile:

database 127.0.0.1

Yan Not: Uzak DB üretim DB? O zaman bile ben uzaktan DB kaynaklarını yeme haydut dev sorgularının riskiyle olmaz - Eğer ayrı bir dev DB kullandığınız sürece Eğer öyleyse gerçekten, geliştirme çalışmaları için uzaktan DB kullanarak olmamalıdır.

Update: Doh, FTP erişimi sınırlı konum kaçırdı.