Mam serwer z Rackspace. Chcę uzyskać dostęp do bazy danych z wiersza poleceń mojego komputera lokalnego.
Próbowałem:
mysql -u username -h my.application.com -ppassword
Ale daje błąd:
BŁĄD 2003 (HY000):
Nie można połączyć się z serwerem MySQL na „my.application.com” (10061)
Co powoduje ten błąd i jak mogę połączyć się ze zdalną bazą danych?
mysql
shell
mysql-error-2003
user1986299
źródło
źródło
10061
= Odmowa połączeniaOdpowiedzi:
Aby zalogować się bezpośrednio do zdalnej konsoli mysql, użyj poniższego polecenia:
mysql -u {username} -p'{password}' \ -h {remote server ip or name} -P {port} \ -D {DB name}
Na przykład
mysql -u root -p'root' \ -h 127.0.0.1 -P 3306 \ -D local
bez spacji po -p, jak określono w dokumentacji
Przeniesie Cię bezpośrednio do konsoli mysql, przełączając się na wspomnianą bazę danych.
źródło
-p
dev.mysql.com/doc/refman/8.0/en/command-line-options.html-D
parametrzeedytuj plik my.cnf:
vi /etc/my.cnf
:Upewnij się, że:
bind-address=YOUR-SERVER-IP
a jeśli masz linię:
skip-networking
koniecznie skomentuj to:
#skip-networking
nie zapomnij o ponownym uruchomieniu:
/etc/init.d/mysqld restart
źródło
grant all privileges on *.* to 'root'@'%' identified by 'your-password'
po prostu umieść to na terminalu w Ubuntu:
Teraz wciśnij Enter
terminal zapyta Cię o hasło, wprowadź hasło i jesteś na serwerze bazy danych
źródło
Spróbuj tego polecenia
mysql -uuser -hhostname -PPORT -ppassword
.Miałem do czynienia z podobną sytuacją i później, gdy za pomocą polecenia wprowadzono port mysql dla hosta, problem został rozwiązany.
źródło
mysql -u testuser -h 192.168.**.* -P 3306 -p password
pracował dla mnieNa komputerze Mac użyj następującego polecenia:
mysql -u app -h hostaddress -P port -D dbname -p
a następnie wprowadź hasło po wyświetleniu monitu.
źródło
Jeśli nie chcesz używać tunelu ssh, w my.cnf lub mysqld.cnf musisz zmienić 127.0.0.1 na lokalny adres IP ( 192.168.1.100 ), aby uzyskać dostęp przez sieć LAN. przykład poniżej:
Wyszukaj bind-address w my.cnf lub mysqld.cnf
bind-address = 127.0.0.1
i zmień 127.0.0.1 na 192.168.1.100 (lokalny adres IP)
bind-address = 192.168.1.100
Aby zastosować dokonaną zmianę, należy zrestartować serwer mysql za pomocą następnego polecenia.
sudo /etc/init.d/mysql restart
Zmodyfikuj root użytkownika dla dostępu do sieci LAN (uruchom zapytanie poniżej na serwerze zdalnym, do którego chcesz mieć dostęp)
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;
Jeśli chcesz mieć dostęp tylko z określonego adresu IP, zmień 'root' @ '%' na 'root' @ '(adres IP lub nazwa hosta)'
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;
Następnie możesz połączyć:
nobus@xray:~$ mysql -h 192.168.1.100 -u root -p
testowany na serwerze ubuntu 18.04
źródło
spróbuj
telnet 3306
. Jeśli nie otwiera połączenia, albo jest ustawiona zapora sieciowa, albo serwer nie nasłuchuje (lub nie działa).uruchomić
netstat -an
na serwerze, aby sprawdzić, czy serwer działa.Możliwe, że nie zezwalasz na połączenia zdalne.
Zobacz http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
źródło
Zakładam, że masz zainstalowany MySQL na swoim komputerze. Wykonaj poniższe polecenie po uzupełnieniu brakujących danych:
źródło
Należy sprawdzić, czy dostęp przychodzący do portu 3306 jest blokowany przez zaporę.
źródło
Serwery mysql są zwykle skonfigurowane do nasłuchiwania tylko na localhost (127.0.0.1), gdzie są używane przez aplikacje internetowe.
Jeśli tak jest w Twoim przypadku, ale masz dostęp do serwera przez SSH, możesz utworzyć tunel ssh i połączyć się przez niego.
Na komputerze lokalnym utwórz tunel.
ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host
(w tym przykładzie użyto lokalnego portu 3307, na wypadek gdybyś miał również mysql działający na komputerze lokalnym i korzystający ze standardowego portu 3306)
Teraz powinieneś być ale, z którym możesz się połączyć
mysql -u $user -p -h 127.0.0.1 -P 3307
źródło
-i $identity_file
do polecenia ssh, jeśli masz różne klucze.Jest proste polecenie.
Przykład
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
źródło
to rozwiązanie zadziałało dla mnie:
Na twoim zdalnym komputerze (przykład: 295.13.12.53) ma dostęp do twojego docelowego zdalnego komputera (na którym działa serwer mysql)
ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53
Wyjaśnił:
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 - to nie jest lokalny adres IP, jest to adres IP, na który ssh, w tym przykładzie 295.13.12.53
your_ssh_mashine_local_port - to jest port niestandardowy, a nie 22, w tym przykładzie jest to 3306.
target_ipaddress - adres IP maszyny, z której chcesz zrzucić bazę danych.
target_port - 3306 to jest prawdziwy port dla serwera MySQL.
user @ your_ip_address - to są poświadczenia ssh dla urządzenia ssh, z którym się łączysz
Po wykonaniu tego wszystkiego wróć do swojego komputera i zrób to:
mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql
Poprosi o hasło, poda hasło i jesteś połączony. Mam nadzieję że to pomoże.
źródło
Spróbuj tego, to działa:
mysql -h {nazwa hosta} -u {nazwa użytkownika} -p {hasło} -N -e "{zapytanie do wykonania}"
źródło
Ten pracował dla mnie w mysql 8, zamień na
hostname
swoją nazwę hosta iport_number
numer_portu, możesz również zmienić swojego mysql_user, jeśli nie jest rootemmysql --host=host_name --port=port_number -u root -p
Więcej informacji tutaj
źródło
Powinieneś umieścić swoje hasło za pomocą „p”
mysql -u root -u 1.1.1.1 -p'MyPass'
źródło
Otrzymałem ten sam błąd. Ale okazało się to przydatne, tworząc nowego użytkownika mysql na zdalnym serwerze mysql, a następnie łącząc się. Uruchom następujące polecenie na serwerze zdalnym:
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;
Teraz możesz połączyć się ze zdalnym mysql za pomocą następującego polecenia.
Oto cały post:
http://openvani.com/blog/connect-remotely-mysql-server/
źródło
Jeśli korzystasz z systemu Windows, wypróbuj program Visual Studio Code z wtyczkami MySQL, łatwy i zintegrowany sposób uzyskiwania dostępu do danych MySQL na komputerze z systemem Windows. A tabele bazy danych wymienione i mogą wykonywać dowolne niestandardowe zapytania.
źródło