2013-02-26 16 views
6

Başka bir bilgisayarda MySQL sunucusuna erişen bir C# Uygulaması var. Bunu IP üzerinden yapmaya çalışıyorum.C# kullanarak uzak bir MySQL sunucusuna nasıl bağlanır?

server = "192.168.10.221"; 
database = "restaurantdb"; 
uid = "root"; 
password = ""; 
string connectionString; 
connectionString = "SERVER=" + server + "; PORT = 3306 ;" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 
mycon = new MySqlConnection(connectionString); 

Şimdi fikir, ben bilgisayarların her ikisi bağlı hangi internet veya Wi-Fi bağlantısı ile bağlayın olacaktır: İşte benim bağlantı dizesi olduğunu. Sonra veritabanına C# kodlanmış SQL Strings üzerinden erişirdim. Artık onları LAN ağına da bağlayabilirim ama nasıl olduğunu bilmiyorum.

benim kod

{"Access denied for user 'root'@'Crave-PC.lan' (using password: NO)"} System.Exception {MySql.Data.MySqlClient.MySqlException} 

Ben ağ üzerinden sunucuya nasıl erişebileceğini bir fikir bu istisna alıyorum?

+1

Parolanızın hatalı olmadığından emin misiniz? Erişim engellendi hatası aldığınız halde bağlantı kurulur, bu nedenle muhtemelen kimlik bilgilerinizde yanlış bir şey var demektir. Belki root sadece localhost'dan giriş yapabilir. Uzaktan erişimi olan bir kullanıcı oluşturun. – AmazingDreams

+0

Uzaktan erişimi olan bir ana bilgisayarı nasıl oluştururum? Ben –

+0

yüklü çalışma tezgahı var Burada da 'root' adında bir kullanıcı var ve hiçbir şifre var –

cevap

6

Sorun, MySQL Server tarafında, kök kullanıcının uzaktan bağlanmak için izinleri yok. root parolasına sahip doesnt MySQL alışkanlık olacak bunu bağlayalım, mevcut kök parola

GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY 'rootPass'; 

Hemen değişim 'ROOTPASS': sadece mysql komut satırında bu tip remotelly bağlamak için kök kullanıcı permisions vermek bunun için bir tane tanımlamak.

Tek taraflı not: En iyi güvenlik yöntemi olarak, istemci uygulamalarınızdan mysql veritabanlarına erişmek için root dışında başka bir kullanıcı tanımlamanız gerekir. o yardımcı olur

Umut, bu konuya

+0

THANKS A LOT! Sana çok borçlandım! Xampp kullanarak –

+0

im. phpmyadmin kullanıyorum, bu mysql komut satırına nasıl erişebilirim? – Kokombads

0

Bir ekleme: iki bilgisayar aynı ağa bağlı bazı durumlarda

, yukarıda tanımlanan bağlantı dizesi hala yapılandırmasına rağmen işe yaramayabilir kaynak bilgisayar ve istemci bilgisayardan kullanıcı için ayrıcalıkların verilmesi.

Bu gibi durumlarda, "daha fazla ilerlemeden önce ve Mysql config dosyasının değiştirilmesi gibi kaynak bilgisayarda daha ciddi eylemler gerçekleştirmeden önce)" bilgisayar adını IP adresi yerine sunucu adı olarak kullan "seçeneğini düşünün.

yani

  • ilk yukarıda açıklandığı gibi,
  • ancak bunun yerine yukarıda önerilen bağlantı dizesi aşağıdaki bağlantı dizesi deneyin kullanıcıya ayrıcalık tanımak: böylece

bağlantı dizesi şöyle görünür:

server = "pc-name-whateveritis"; 
database = "restaurantdb"; 
uid = "root"; 
password = ""; 
string connectionString; 
connectionString = "SERVER=" + server + "; PORT = 3306 ;" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 
mycon = new MySqlConnection(connectionString); 

Kaynak bilgisayarın adı birçok durumda çalışabilir, kaynak bilgisayarın IP adresi hata döndürür.

İyi şanslar!

0

Kökten farklı bir kullanıcı adına geçiş ve parola, uzaktan erişim için iyi bir şekilde ayarlandığını, çünkü yerel ana bilgisayardayken kök yalnızca tam erişim ayrıcalıklarına sahip olduğundan ayarlanmasını sağlar. Yerel bir ağ üzerinde bir IP adresi kullanarak bir hata verir, bu nedenle bilgisayar adını kullanın.

İlgili konular