Komut satırından mysql uzak veritabanına erişim


190

Rackspace ile bir sunucum var. Yerel makine komut satırımdan veritabanına erişmek istiyorum.

Şöyle denedim:

mysql -u username -h my.application.com -ppassword

Ama bir hata veriyor:

HATA 2003 (HY000):

'My.application.com' adresindeki MySQL sunucusuna bağlanılamıyor (10061)

Bu hataya ne sebep olur ve uzak veritabanına nasıl bağlanabilirim?


5
10061= Bağlantı reddedildi
Danny Beckett

Yanıtlar:


294

Uzak bir mysql konsolunda doğrudan oturum açmak için aşağıdaki komutu kullanın:

mysql -u {username} -p'{password}' \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

Örneğin

mysql -u root -p'root' \
        -h 127.0.0.1 -P 3306 \
        -D local

belgelerde belirtildiği gibi -p'den sonra boşluk yok

Söz konusu veritabanına geçerek sizi doğrudan mysql konsoluna götürecektir.

31-07-2019 - düzenlenmiş sözdizimi


23
Şifreyi tek tırnak içine almak zorunda kaldım. yanimysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
Nick Brady

2
Veritabanı adını belirtmek için -D eklememiz gerekir. mysql -u {kullanıcı adı} -p {şifre} -h {uzak sunucu ip} -D {DB adı}
randeepsp

1
Belirli bir PORT'u belirtmemiz gerekirse ne olur?
Serge

2
MacOS High Sierra Sürüm 10.13.3'te Terminal'de çalışmadı
realPK


33

my.cnf dosyasını düzenle:

vi /etc/my.cnf:

emin olun:

bind-address=YOUR-SERVER-IP

ve hattınız varsa:

skip-networking

yorum yaptığınızdan emin olun:

#skip-networking

yeniden başlatmayı unutmayın:

/etc/init.d/mysqld restart


bind-address = SUNUCUNUZ-IP. burada hangi IP bahsetmek gerekir uzak sunucu IP mi?
user1986299

@ user1986299 hayır, sunucunuzun IP'sine ihtiyacınız yok (uzak değil)
alfasin

1
Kendinize erişim izni vermelisiniz ... mysql yazarak grant all privileges on *.* to 'root'@'%' identified by 'your-password'
DB'nizi

5
ASLA 'root' @ '%' vermeyin, bu büyük bir güvenliktir hayır hayır!
josh123a123

1
@alfasin bu derin etkisi olan küçük bir değişiklik, teşekkürler!
Christopher Schönfeldt

30

sadece ubuntu'daki terminale koyun:

mysql -u username -h host -p

Şimdi enter tuşuna basın

terminal size parola soracak, parolayı girecek ve veritabanı sunucusuna gireceksiniz.


14

Bu komutu deneyin mysql -uuser -hhostname -PPORT -ppassword.

Benzer bir durumla karşılaştım ve daha sonra ana bilgisayar için mysql portu komutla girildiğinde çözüldü.


5
mysql -u testuser -h 192.168.**.* -P 3306 -p passwordbenim için çalıştı
Mahebub A Sayyed

14

Mac için aşağıdaki komutu kullanın:

mysql -u app -h hostaddress -P port -D dbname -p

ve istendiğinde parolayı girin.


12

İçinde, ssh tünel kullanmayın istiyorsanız my.cnf veya mysqld.cnf değiştirmek gerekir 127.0.0.1 yerel ip adresine (ile 192.168.1.100 Lan üzerinden erişime sahip olmak için). feryat örneği:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Ara bağlama adresi içinde my.cnf veya mysqld.cnf

bind-address            =  127.0.0.1

ve değişime 127.0.0.1 için 192.168.1.100 (yerel ip adresi)

bind-address            =  192.168.1.100

Yaptığınız değişikliği uygulamak için, sonraki komutu kullanarak mysql sunucusunu yeniden başlatmalısınız.

sudo /etc/init.d/mysql restart

Lan erişimleri için kullanıcı kökünü değiştirin (erişmek istediğiniz uzak sunucuda sorgunun feryatını çalıştırın)

root@192.168.1.100:~$ mysql -u root -p

..

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Yalnızca belirli bir ip adresinden erişmek istiyorsanız, 'root' @ '%' i 'root' @ '(ip adresi veya ana bilgisayar adı)' olarak değiştirin

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Sonra bağlanabilirsiniz:

nobus@xray:~$ mysql -h 192.168.1.100 -u root -p

Ubuntu 18.04 sunucusunda test edildi


En iyi cevap! Teşekkürler
Nastro


6

Makinenizde MySQL yüklü olduğunu varsayıyorum. Eksik ayrıntıları doldurduktan sonra aşağıdaki komutu yürütün:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 

2

3306 numaralı bağlantı noktasına gelen erişimin güvenlik duvarı tarafından engellenip engellenmediğini kontrol etmelisiniz.


Bunu nasıl kontrol edebilirim
ChandraMouli Poreddy

2

Basit bir komut var.

mysql -h {hostip} -P {port} -u {username} -p {database}

Misal

mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb

{hostip} 192.10.10.26::45124
Manish Goswami

1

bu çözüm benim için çalıştı:

Uzak makinenizde (örnek: 295.13.12.53) hedef uzak makinenize (mysql sunucusunu çalıştıran) erişebilir

ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53

Açıklaması:

ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N

your_ssh_mashine_ipaddress - yerel ip adresi değil, bu örnekte ssh olarak kullandığınız ip adresidir 295.13.12.53

your_ssh_mashine_local_port -bu, 22 değil özel bağlantı noktasıdır, bu örnekte 3306'dır.

target_ipaddress - DB'yi boşaltmaya çalıştığınız makinenin ip'i.

target_port - 3306 bu MySQL sunucusu için gerçek bağlantı noktasıdır.

user @ your_ip_address - bağladığınız ssh makinesi için ssh kimlik bilgileri

Tüm bunlar yapıldıktan sonra makinenize geri dönün ve bunu yapın:

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

Parola isteyecek, parolanızı koyacak ve bağlı olacaksınız. Bu yardımcı olur umarım.


1

Bunu deneyin, Çalışıyor:

mysql -h {ana bilgisayar adı} -u {kullanıcı adı} -p {şifre} -N -e "{yürütmek için sorgu}"



0

Ben de aynı hatayı alıyordum. Ama uzak mysql sunucusu ans sonra yeni mysql kullanıcı oluşturarak yararlı buldum sonra bağlayın. Uzak sunucuda aşağıdaki komutu çalıştırın:

CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT 
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Şimdi aşağıdaki komutla uzak mysql ile bağlanabilirsiniz.

mysql -u openvani -h 'any ip address'-p

İşte yazının tamamı:

http://openvani.com/blog/connect-remotely-mysql-server/


0

mysql sunucuları genellikle yalnızca web uygulamaları tarafından kullanılan localhost (127.0.0.1) dinleyecek şekilde yapılandırılır.

Durum buysa, ancak sunucunuza SSH erişiminiz varsa, bir ssh tüneli oluşturabilir ve bu bağlantı üzerinden bağlanabilirsiniz.

Yerel makinenizde tüneli oluşturun.

ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host

(bu örnekte, yerel makinenizde mysql çalışıyorsa ve 3306 standart bağlantı noktasını kullanmanız durumunda yerel bağlantı noktası 3307 kullanılır)

Şimdi bağlanmak için ale olmalısın

mysql -u $user -p -h 127.0.0.1 -P 3307

0

Bu benim için mysql 8'de çalıştı hostname, ana bilgisayar adınızla ve port_numberport_number'ınızla değiştirin, eğer kök değilse mysql_user'ınızı da değiştirebilirsiniz.

      mysql --host=host_name --port=port_number -u root -p

Daha Fazla Bilgi Burada


0

Windows kullanıyorsanız, Windows makinesindeki MySQL verilerine erişmenin kolay ve entegre bir yolu olan MySQL eklentileri ile Visual Studio Code'u deneyin. Ve veritabanı tabloları listelenen ve herhangi bir özel sorgu yürütebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.