MySQL/MariaDb – dostęp z zewnątrz
Serwer bazy danych MySQL/MariaDB domyślnie zezwala jedynie na połączenia z sieci lokalnej. Jeżeli chcesz udostępnić serwer dla wszystkich interfejsów, musisz dokonać kilku zmian w ustawieniach.
Plik konfiguracyjny
Wpierw musisz wprowadzić zmianę w pliku konfiguracyjnym.
Przejdź do jego lokalizacji.
cd /etc/mysql/mariadb.conf.d
Po czym otwórz go do edycji.
sudo nano 50-server.cnf
Wpierw upewnij się, że nie masz wpisanego poniższego ustawienia. Jeżeli masz, usuń je lub zakomentuj znakiem #. Starsze wersje MySQL miały dodany ten wpis domyślnie.
#skip-networking
Znajdź następnie wpis bind-address i podmień jego zawartość z tej wskazującej na sieć lokalną
bind-address = 127.0.0.0
na taką, która pozwala na połączenie z dowolnego urządzenia w sieci.
bind-address = 0.0.0.0
Niestety, nie ma możliwości dodania kilku adresów czy przedziału adresów. Aby to zrobić, należy odpowiednio skonfigurować firewall. Pamiętaj także, że na serwerze przechowującym istotne dane taka konfiguracja musi być koniecznie wdrożona! Z uwagi na prostotę tego tutorialu, nie będę jej w nim poruszać.
Uprawnienia
Serwer MySQL domyślnie powinien posiadać już taką konfigurację 0.0.0.0 (ale sprawdź dla pewności). Jeżeli problem występuje nadal, zapewne jest to wina uprawnień. W tym celu uruchom linię poleceń dla serwera, wpisując:
sudo mysql -u root -p
Po czym nadaj odpowiedniej bazie uprawnienia:
GRANT ALL PRIVILEGES ON *.* TO 'YOUR_MYSQL_USERNAME'@'192.168.1.%' IDENTIFIED BY 'YOUR_MYSQL_PASSWORD' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'YOUR_MYSQL_USERNAME'@'10.8.0.%' IDENTIFIED BY 'YOUR_MYSQL_PASSWORD' WITH GRANT OPTION;
Możesz sprawdzić dodane wpisy poleceniem:
SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';

Jeżeli się pomyliłeś – nic się nie stało. Możesz usunąć te uprawnienia analogicznym poleceniem.
Delete FROM mysql.user WHERE Host <> 'localhost';

Możesz teraz zapisać ustawienia i wyłączyć konsolę MySQL.
FLUSH PRIVILEGES;
exit
Pozostaje już tylko zrestartować serwis.
sudo service mysql restart
#lub
sudo service mariadb restart

Jeden komentarz do “MySQL/MariaDb – dostęp z zewnątrz”