Próbuję połączyć się ze zdalną bazą danych MySQL w Bash. Na serwerze obsługującym bazę danych mogę wpisać:
mysql -u _username_ -p
połączyć.
Chciałbym móc pisać:
mysql -h _host_ -u _username_ -p
połączyć się z innego serwera. Nie mam MySQL zainstalowanego na kliencie, więc polecenie nie zostało znalezione. Czy jest coś, co mogę zainstalować (preferowane apt-get) oprócz całego serwera MySQL, aby móc używać poleceń mysql w bash?
Odpowiedzi:
Aby zainstalować klienta MySQL z linii poleceń, należy:
i wtedy możesz zrobić
Może jednak zajść potrzeba zmiany konfiguracji serwera MySQL. Domyślnie na Ubuntu serwer MySQL akceptuje tylko połączenia z serwera lokalnego. Ustawienie jest wywoływane
bind-address
i ustawiane w/etc/mysql/my.cnf
. Domyślnie jest127.0.0.1
- powinieneś zmienić go na adres IP serwera. Jeśli serwer ma wiele adresów IP, możesz wybrać tylko jeden adres IP (powiedzmy dla sieci wewnętrznej) lub pozwolić MySQL nasłuchiwać wszystkich adresów IP, podając wartość0.0.0.0
Musisz także upewnić się, że użytkownik MySQL ma dostęp do bazy danych. Postępując zgodnie z instrukcjami w Internecie, możesz utworzyć użytkownika
'myname'@'localhost'
- ten użytkownik nie będzie mógł połączyć się zdalnie. Aby utworzyć nowego użytkownika, który będzie mógł łączyć się z adresu IP klienta, musisz wykonać następujące czynności:Przeczytaj trochę więcej o specyfikacji adresu, której używa MySQL .
Na koniec nie zapomnij upewnić się, że zapora serwera pozwoli na dostęp do portu MySQL - domyślnie jest to 3306.
źródło