Mam świadomość tego polecenia:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
Ale wtedy pozwala mi tylko nadać określony adres IP, aby uzyskać dostęp do tej zdalnej bazy danych MySQL. Co jeśli chcę, aby każdy zdalny host mógł uzyskać dostęp do tej bazy danych MySQL? W jaki sposób mogę to zrobić? Zasadniczo upubliczniam tę bazę danych, aby każdy mógł uzyskać do niej dostęp.
Odpowiedzi:
% jest symbolem wieloznacznym - możesz także zrobić
'%.domain.com'
lub'%.123.123.123'
i coś takiego, jeśli potrzebujesz.źródło
-h my_machine_name
parametru. To powoduje, że klient identyfikuje cię'user'@my_machine_name.example.com
raczej niż'user'@localhost
. W ten sposób nie musisz tworzyć i utrzymywać podwójnych kont i dotacji zarówno dlalocalhost
dostępu do sieci, jak i dla niej. I, oczywiście, być pewnymysqld
jest związany0.0.0.0
vs.127.0.0.1
.Enable Remote Access (Grant) Home / Tutorials / Mysql / Enable Remote Access (Grant) Jeśli spróbujesz połączyć się z serwerem mysql ze zdalnego komputera i napotkasz błąd jak poniżej, ten artykuł jest dla Ciebie.
Zmień konfigurację mysql
Zacznij od edycji pliku konfiguracyjnego mysql
Skomentuj następujące wiersze.
Jeśli nie znajdziesz linii pomijania sieci, dodaj ją i skomentuj.
Uruchom ponownie serwer mysql.
Zmień uprawnienie GRANT
Możesz być zaskoczony, gdy nawet po powyższej zmianie nie otrzymujesz dostępu zdalnego lub dostępu, ale nie możesz uzyskać dostępu do wszystkich baz danych.
Domyślnie używana nazwa użytkownika i hasło mysql ma dostęp do lokalnego serwera mysql. Więc musisz zaktualizować uprawnienia.
Uruchom polecenie jak poniżej, aby uzyskać dostęp ze wszystkich komputerów. (Zamień
USERNAME
i zaPASSWORD
pomocą poświadczeń.)Uruchom polecenie jak poniżej, aby uzyskać dostęp z określonego adresu IP. (Zamień
USERNAME
i zaPASSWORD
pomocą poświadczeń.)Możesz zastąpić 1.2.3.4 swoim adresem IP. Możesz uruchomić powyższą komendę wiele razy, aby UZYSKAĆ dostęp z wielu adresów IP.
Możesz także określić oddzielny
USERNAME
iPASSWORD
zdalny dostęp.Możesz sprawdzić końcowy wynik:
Wreszcie może być konieczne uruchomienie:
Testuj połączenie
Z terminala / wiersza poleceń:
Jeśli otrzymasz powłokę mysql, nie zapomnij uruchomić baz danych show; aby sprawdzić, czy masz odpowiednie uprawnienia ze zdalnych komputerów.
Porada dodatkowa: Odwołaj dostęp
Jeśli przypadkowo przyznasz dostęp użytkownikowi, lepiej skorzystaj z opcji odwołania.
Poniższe unieważnią wszystkie opcje dla USERNAME ze wszystkich komputerów:
Jeśli widzisz uprawnienie USAGE po uruchomieniu polecenia REVOKE, jest w porządku. Jest tak dobry, jak żaden przywilej. Nie jestem pewien, czy można go odwołać.
źródło
/etc/mysql/mysql.conf.d/mysqld.cnf
plik zamiast/etc/mysql/my.cnf
komentowaćbind-address
część.#skip-networking
Brakuje linii i nie powinno być skutkiem dodawania i komentowania linię./etc/mysql/mariadb.conf.d/50-server.cnf
3306
lubZakładając, że powyższy krok został zakończony, a do portu MySql 3306 można uzyskać zdalny dostęp; Nie zapomnij powiązać publicznego adresu IP w pliku konfiguracyjnym mysql.
Na przykład na moim serwerze ubuntu:
W pliku wyszukaj blok sekcji [mysqld] i dodaj nowy adres powiązania, w tym przykładzie jest to 192.168.0.116. Wyglądałoby to mniej więcej tak
możesz usunąć powiązanie localhost (127.0.0.1), jeśli chcesz, ale musisz podać adres IP, aby uzyskać dostęp do serwera na komputerze lokalnym.
Ostatnim krokiem jest zrestartowanie serwera MySql (na Ubuntu)
lub
#/etc/init.d/mysql restart
dla innych systemówTeraz do bazy danych MySQL można uzyskać zdalny dostęp poprzez:
źródło
/etc/init.d/mysql reload
powinno wystarczyćbind-address
Dyrektywa określa adres IP, który MySQL server Słuchacze na; nie adresy IP, z których serwer akceptuje połączenia.bind-address
adresu localhost lub remotehost pojawia się błąd .mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
Dla każdego, kto brał się z tym, oto, jak mam przyznać przywileje, mam nadzieję, że to komuś pomoże
Jak wspomniano,
%
jest to symbol wieloznaczny, który pozwoli dowolnemu adresowi IP połączyć się z bazą danych. Zakładam, że tutaj, kiedy się połączysz, będziesz mieć nazwę użytkownikaroot
(który jest domyślny). Wprowadź hasło roota i gotowe. Zauważ, że nie mam pojedynczych cudzysłowów ('
) wokół katalogu głównego użytkownika.źródło
Zmiany plików konfiguracyjnych są wymagane, aby umożliwić połączenia za pośrednictwem hosta lokalnego.
Aby połączyć się przez zdalne adresy IP, zaloguj się jako użytkownik „root” i uruchom poniższe zapytania w mysql.
Spowoduje to utworzenie nowego użytkownika, który będzie dostępny na localhost, a także ze zdalnych adresów IP.
Skomentuj również poniższy wiersz z pliku my.cnf znajdującego się w /etc/mysql/my.cnf
Uruchom ponownie mysql za pomocą
Teraz powinieneś być w stanie połączyć się zdalnie z mySQL.
źródło
Użyj tego polecenia:
Następnie:
Następnie skomentuj poniższy wiersz w pliku „/etc/mysql/mysql.conf.d/mysqld.cnf” (jest wymagany!):
Pracuje dla mnie!
źródło
your-password-does-not-satisfy-the-current-policy-requirements
Aby móc połączyć się z użytkownikiem z dowolnego adresu IP, wykonaj następujące czynności:
Pozwól serwerowi mysql akceptować połączenia zdalne. W przypadku tego otwartego pliku mysqld.conf:
Wyszukaj wiersz zaczynający się od „bind-address” i ustaw jego wartość na 0.0.0.0
i na koniec zapisz plik.
Uwaga: Jeśli korzystasz z MySQL 8+,
bind-address
dyrektywamysqld.cnf
domyślnie nie będzie w pliku. W takim przypadku dodaj dyrektywę do dolnej części pliku/etc/mysql/mysql.conf.d/mysqld.cnf
.Teraz zrestartuj serwer mysql za pomocą
systemd
lub użyj starszejservice
komendy. To zależy od twojego systemu operacyjnego:Wreszcie serwer mysql może teraz akceptować połączenia zdalne.
Teraz musimy utworzyć użytkownika i udzielić mu pozwolenia, abyśmy mogli zdalnie zalogować się do tego użytkownika.
Połącz się z bazą danych MySQL jako root lub dowolny inny użytkownik z uprawnieniami root.
teraz utwórz żądanego użytkownika zarówno w localhost, jak i w symbolu wieloznacznym „%” i nadaj uprawnienia wszystkim bazom danych jako takim.
Następnie,
I na koniec nie zapomnij spuścić uprawnień
Uwaga: Jeśli skonfigurowałeś zaporę na serwerze bazy danych, musisz także otworzyć port
3306
domyślny portu MySQL, aby zezwolić na ruch do MySQL.Mam nadzieję że to pomoże ;)
źródło
Uruchom następujące czynności:
Następnie spróbuj połączyć się z podanego adresu IP:
Powinieneś być w stanie się połączyć.
źródło
Możesz spowolnić problem MariaDB za pomocą tego polecenia :
Uwaga:
%
jest symbolem wieloznacznym. W takim przypadku odnosi się do wszystkich adresów IP.źródło
źródło
Aby uzyskać zdalny dostęp do bazy danych serwer Mysql 8:
źródło
Jeśli korzystasz z instancji EC2, nie zapomnij dodać reguł ruchu przychodzącego do grupy zabezpieczeń za pomocą MYSQL / Aurura.
źródło
Edytuj plik:
/etc/mysql/percona-server.cnf
Dołącz poniższy kod w pliku.
[mysqld] bind-address = 0.0.0.0
Utwórz użytkownika do zdalnego dostępu.
Cały serwer linux działa,
MSWin c: \ Znajdź lokalizację lokalizacji \ ścieżki pliku
źródło
Wystarczy utworzyć użytkownika w jakiejś bazie danych, takiej jak
GRANT ALL PRIVILEGES ON <database_name>.* TO '<username>'@'%' IDENTIFIED BY '<password>'
Następnie idź do
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
i zmień liniębind-address = 127.0.0.1
nabind-address = 0.0.0.0
Następnie możesz połączyć się z tą bazą danych z dowolnego adresu IP.
źródło
Otwórz
mysql console
i wykonaj następujące polecenie (wprowadź nazwę bazy danych, nazwę użytkownika i hasło):Następnie wykonaj:
Otwórz wiersz poleceń i otwórz plik
/etc/mysql/mysql.conf.d/mysqld.cnf
za pomocą dowolnego edytora zroot privileges
.Na przykład:
Następnie skomentuj poniższy wiersz:
Uruchom ponownie mysql, aby odzwierciedlić zmiany za pomocą polecenia:
Cieszyć się ;)
źródło
Musisz zmienić plik konfiguracyjny mysql:
Zacznij od edycji pliku konfiguracyjnego mysql
Dodaj:
źródło
W panelach witryn, takich jak cPanel, możesz dodać pojedynczy
%
znak (procent) w dozwolonych nazwach hostów, aby uzyskać dostęp do bazy danych MySQL.Dodając jeden
%
, możesz uzyskać dostęp do bazy danych z dowolnego adresu IP lub strony internetowej, nawet z aplikacji komputerowych.źródło
Na przykład w moim CentOS
skomentuj następujące wiersze
następnie
źródło
Jeśli chcesz przyznać zdalny dostęp do bazy danych z dowolnego adresu IP, uruchom komendę mysql, a następnie uruchom następującą komendę.
źródło
tym, co działało na Ubuntu, jest nadanie użytkownikowi wszystkich uprawnień:
i ustawienie adresu powiązania w
/etc/mysql/mysql.conf.d/mysqld.cnf
:następnie ponownie uruchamiając demona mysql:
źródło
Możesz wyłączyć wszystkie zabezpieczenia, edytując /etc/my.cnf:
źródło