MySQL to jedna z najpopularniejszych baz danych, używana przez miliony aplikacji webowych na całym świecie. Jeśli chcesz zainstalować MySQL na swoim serwerze z systemem Debian 12, trafiłeś we właściwe miejsce.
MySQL to otwartoźródłowy system zarządzania relacyjnymi bazami danych (RDBMS), który oferuje szybkość, niezawodność i prostotę obsługi. Debian 12 to stabilna i niezawodna dystrybucja Linuksa, szeroko stosowana na serwerach. Dzięki długoterminowemu wsparciu i otwartoźródłowemu charakterowi, Debian jest doskonałym wyborem dla aplikacji serwerowych, takich jak MySQL.
Instalacja i konfiguracja MySQL na Debianie 12 to proces, który można przeprowadzić w kilku krokach. Dzięki stabilności i niezawodności zarówno MySQL, jak i Debiana, możesz być pewien, że Twoje aplikacje będą działały wydajnie i bezpiecznie.
Podczas wykonywania tego skryptu będziesz proszony o ustawienie hasła dla użytkownika root oraz o kilka innych decyzji dotyczących bezpieczeństwa.
Zanim zaczniesz, upewnij się, że Twój serwer Linux spełnia podstawowe wymagania i że masz odpowiedni dostęp.
Wybierz dobrze MySQL Wydanie i repozytorium. Większość repozytoriów Linuksa zapewnia: MySQL lub MariaDB. Aby uzyskać najnowsze informacje MySQL 8 funkcji, rozważ oficjalne MySQL Repozytorium. Jeśli preferowana jest stabilność integracji z dystrybucją, należy użyć domyślnych repozytoriów.
MariaDB (szybkie wywołanie) oraz MySQL 8.0: Silny JSON, funkcje okna, role, domyślne uwieruchamianie caching_sha2_password, zorientowane na InnoDB.
Wskazówka: Dopasuj swój wybór do wymagań aplikacji.
sudo systemctl status mysql --no-pager
Instalację na serwerze Linux jest prosta, jeśli wykonasz odpowiednie kroki. W tym przewodniku dowiesz się, jak zainstalować MySQL w dystrybucjach opartych na Ubuntu/Debianie i RHEL, zabezpiecz je do celów produkcyjnych, włączyć zdalny dostęp, dostosuj podstawową wydajność i sprawdź, czy wszystko działa - używając poleceń, które możesz bezpiecznie skopiować i uruchomić.
Ten samouczek przedstawia praktyczne, praktyczne praktyki stosowane na serwerach klienckich. W Ubuntu/Debian użyj apt.
Uruchom polecenie sudo apt update, a następnie sudo apt install -y mysql-server. Włącz i uruchom usługę poleceniem sudo systemctl enable -now mysql. Na koniec zabezpiecz ją poleceniem sudo mysql_secure_installation.
Instalacja na serwerze Linux jest prosta, jeśli wykonasz odpowiednie kroki. W tym przewodniku dowiesz się, jak zainstalować MySQL w dystrybucjach opartych na Ubuntu/Debianie i RHEL, zabezpiecz je do celów produkcyjnych, włączyć zdalny dostęp, dostosuj podstawową wydajność i sprawdź, czy wszystko działa - używając poleceń, które możesz bezpiecznie skopiować i uruchomić.
W zależności od dystrybucji, MySQL Użytkownik root może uwierzytelnić się przez gniazdo (bez hasła) lub za pomocą hasła. sudo mysql_secure_installation
Podczas instalacji i konfiguracji mogłeś już ustawić hasło dla użytkownika root.
Krok 1: Ustawienie hasła dla root. Podczas instalacji i konfiguracji mogłeś już ustawić hasło dla użytkownika root.
Zdalne połączenia do serwera MySQL mogą stanowić zagrożenie, jeśli nie są odpowiednio zabezpieczone.
Włącz dostęp zdalny (opcjonalnie) - zezwalaj na zdalny dostęp tylko wtedy, gdy jest to konieczne i ograniczaj go według adresu IP. sudo firewall-cmd --reload
Użyj listy dozwolonych adresów IP zamiast otwierać adres 3306 dla całego świata.
W zależności od dystrybucji, MySQL Użytkownik root może uwierzytelnić się przez gniazdo (bez hasła) lub za pomocą hasła. sudo systemctl enable --now mysqlZastąp wersję pakietu konfiguracyjnego APT najnowszą z dev.mysql.com. Następnie uruchom bezpieczną instalację, jak pokazano wcześniej.
Zastąp wersję pakietu konfiguracyjnego APT najnowszą z dev.mysql.com. Następnie uruchom bezpieczną instalację, jak pokazano wcześniej.
W zależności od dystrybucji, MySQL Użytkownik root może uwierzytelnić się przez gniazdo (bez hasła) lub za pomocą hasła. sudo systemctl enable --now mysql
W zależności od dystrybucji, MySQL może wygenerować tymczasowe hasło roota w dzienniku.
Rejestry i typowe problemy - Pliki dziennika: /var/log/mysql/error.log (Ubuntu/Debian), /var/log/mysqld.log (podobny do RHEL).
Rejestry i typowe problemy - Port w użyciu: Upewnij się, że żadna inna usługa nie jest powiązana z portem 3306 (użyj polecenia ss -lntp | grep 3306).

Uruchom mysql_secure_installation, aby zwiększyć bezpieczeństwo, oraz utwórz bazę danych i użytkownika.
Uruchom mysql_secure_installation i ustaw silne, unikalne hasła.
Zabezpiecz MySQL dla Produkcji. Wyłącz zdalne logowanie do konta root; utwórz użytkowników administracyjnych ograniczonych przez adres IP.
Użyj protokołu TLS do połączeń klienckich (skonfiguruj ssl_cert, ssl_key, ssl_ca w mysqld).
Przyznaj najmniejsze uprawnienia; unikaj opcji GRANT ALL dla *.* dla użytkowników aplikacji.
Zmień dane uwierzytelniające i usuń nieużywane konta/bazy danych.
Włącz rejestrowanie wolnych zapytań i regularnie je sprawdzaj.
Konfiguracja początkowa i najlepsze praktyki. Uporządkowany start to tworzenie bazy danych i użytkownika o najmniejszych uprawnieniach.
Utwórz bazę danych i użytkownika o najmniejszych uprawnieniach. Użyj dedykowanego użytkownika dla każdej aplikacji z minimalnymi uprawnieniami.
EXIT;
Rozważania dotyczące wtyczki uwierzytelniania. MySQL W wersji 8 domyślnie ustawione jest na caching_sha2_password. Niektóre starsze klienty obsługują tylko mysql_native_password.
FLUSH PRIVILEGES;
Jeśli aplikacja nie obsługuje domyślnego mechanizmu, typowym krokiem jest dopasowanie ustawień zgodnie z wymaganiami klienta. Wtyczkę i ustawienia hosta warto weryfikować w kontekście błędów logowania.
Utwórz bazę danych i użytkownika. Użyj dedykowanego użytkownika dla każdej aplikacji z minimalnymi uprawnieniami.
mysql -u root -p -e "SHOW DATABASES;"
Witam wszystkich odwiedzających ten post,pod nie obecność administratora serwerów dziś nie może uruchomić się na Debian Server usługa mysql.
W tym momencie przy próbie uruchomienia serwera otrzymuję taki komunikat: Kod: Po wpisaniu komendy systemctl status mysql.service, otrzymuję komunikat: Kod: Natomiast w /var/log/mysql/error.log - mam następujący błąd teraz: Kod:
Jeśli przez przeglądarkę chcę zalogować się do aplikacji to pojawia się komunikat: Kod: Czy ktoś może pomóc ? Co mam zrobić ?
Wróci za 2 tygodnie, jest w Azji. Szukam alternatywy, że móc to naprawić jak się nie uda z nim skontaktować...
W takich sytuacjach kluczowe jest sprawdzenie dzienników i statusu usługi: Pliki dziennika: /var/log/mysql/error.log (Ubuntu/Debian), /var/log/mysqld.log (podobny do RHEL). Port w użyciu: Upewnij się, że żadna inna usługa nie jest powiązana z portem 3306 (użyj polecenia ss -lntp | grep 3306).
Jeśli błąd dotyczy autoryzacji, błędy uwierzytelniania: Sprawdź poprawność wtyczki, hosta (np. mysql -u root -p appdb < appdb_YYYY-MM-DD.sql.
Jeśli problem wynika z odzyskiwania danych z określonego punktu w czasie, należy wziąć pod uwagę MySQL Enterprise Backup lub Percona XtraBackup (kopie zapasowe fizyczne). Zawsze testuj przywracanie.
MySQL Używa portu TCP 3306. Możesz go zmienić, ale bezpieczeństwo powinno opierać się na silnym uwierzytelnianiu, TLS, zaporach sieciowych i liście dozwolonych adresów IP.
Jeśli zmienisz port, zaktualizuj odpowiednio zapory sieciowe, SELinux i ciągi połączeń aplikacji.
Dla produkcji: Twórz użytkownika aplikacji ograniczonego do adresu IP serwera aplikacji.
Otwórz port 3306 tylko dla tego adresu IP (UFW lub firewalld). Bind MySQL do 0.0.0.0 i wymuś protokół TLS dla ruchu produkcyjnego.
Monitoruj połączenia za pomocą performance_schema i logowania w dziennikach błędów.
Ustaw stały czas serwera (NTP), aby zapewnić dokładność dzienników i kopii zapasowych.

Aktualizacje i poprawki. Zaplanuj okna konserwacyjne na potrzeby drobnych aktualizacji wersji.
Przed zainstalowaniem aktualizacji wykonaj kopię zapasową.
Ubuntu/Debian: sudo apt update i sudo apt upgrade.
Podobnie jak w RHEL: sudo dnf update lub sudo yum update.
Przejrzyj notatki dotyczące wydania, aby zapoznać się ze zmianami dotyczącymi uwierzytelniania i replikacji.
MySQL i bezpieczeństwo: Uruchom mysql_secure_installation i ustaw silne, unikalne hasła.
Oba są solidne. Wybierz MySQL 8, aby korzystać z najnowszych funkcji obsługiwanych przez Oracle i szerokiej kompatybilności z ekosystemem. Wybierz MariaDB, jeśli preferujesz rozwój oparty na społeczności lub jest to domyślne ustawienie w Twojej dystrybucji.
Przed zmianą sprawdź obsługę sterowników przez swoją aplikację.
Edytuj MySQL. Skonfiguruj, aby nasłuchiwać na adresie 0.0.0.0 (adresie powiązania), dodaj użytkownika ograniczonego do adresu IP klienta i otwórz port 3306 na zaporze tylko dla tego adresu IP. Uruchom ponownie. MySQL i przetestuj poleceniem mysql -h DB_HOST -u USER -p.
Zawsze unikaj publicznego udostępniania 3306.
W Ubuntu/Debianie: sudo apt purge -y mysql-server mysql-common; następnie sudo apt autoremove -y i usuń pozostałe dane w katalogu /var/lib/mysql (po wykonaniu kopii zapasowych).
W systemach podobnych do RHEL: sudo dnf remove -y mysql* i wyczyść wszelkie pozostałe pliki konfiguracyjne, a następnie usuń katalog /var/lib/mysql, jeśli to konieczne.
Stop MySQL, uruchom go za pomocą -skip-grant-tables, połącz się bez hasła, zaktualizuj roota hasło użytkownika, a następnie uruchom ponownie normalnie. Postępuj zgodnie z oficjalnymi instrukcjami MySQL 8 dokumentacji zawierającej dokładne instrukcje dotyczące Twojej dystrybucji. Upewnij się, że ograniczysz dostęp do serwera podczas tego procesu.
Uruchom polecenie sudo apt update, a następnie sudo apt install -y mysql-server. Włącz i uruchom usługę poleceniem sudo systemctl enable -now mysql. Na koniec zabezpiecz ją poleceniem sudo mysql_secure_installation. Aby uzyskać najnowszą wersję, MySQL 8. Przed instalacją dodaj repozytorium APT firmy Oracle ze strony dev.mysql.com.
W systemach Ubuntu/Debian użytkownik root może uwierzytelniać się przez gniazdo (bez hasła) lub poprosić o jego ustawienie podczas instalacji mysql_secure_installation. W systemach typu RHEL korzystających z MySQL repo, tymczasowe hasło roota jest zapisywane w /var/log/mysqld.log po pierwszym uruchomieniu.
Edytuj MySQL. Skonfiguruj, aby nasłuchiwać na adresie 0.0.0.0 (adresie powiązania), dodaj użytkownika ograniczonego do adresu IP klienta i otwórz port 3306 na zaporze tylko dla tego adresu IP. Uruchom ponownie. MySQL i przetestuj poleceniem mysql -h DB_HOST -u USER -p. Zawsze unikaj publicznego udostępniania 3306.
Oba są solidne. Wybierz MySQL 8, aby korzystać z najnowszych funkcji obsługiwanych przez Oracle i szerokiej kompatybilności z ekosystemem. Wybierz MariaDB, jeśli preferujesz rozwój oparty na społeczności lub jest to domyślne ustawienie w Twojej dystrybucji. Przed zmianą sprawdź obsługę sterowników przez swoją aplikację.
MySQL używać i czy powinienem to zmienić? MySQL Używa portu TCP 3306. Możesz go zmienić, ale bezpieczeństwo powinno opierać się na silnym uwierzytelnianiu, TLS, zaporach sieciowych i liście dozwolonych adresów IP. Jeśli zmienisz port, zaktualizuj odpowiednio zapory sieciowe, SELinux i ciągi połączeń aplikacji.
Przykład z życia wzięty: aplikacja i baza danych na oddzielnych serwerach
Utwórz użytkownika aplikacji ograniczonego do adresu IP serwera aplikacji. Otwórz port 3306 tylko dla tego adresu IP (UFW lub firewalld).
Bind MySQL do 0.0.0.0 i wymuś protokół TLS dla ruchu produkcyjnego.
Monitoruj połączenia za pomocą performance_schema i logowania w dziennikach błędów.
Ustaw stały czas serwera (NTP), aby zapewnić dokładność dzienników i kopii zapasowych.
Kiedy wybrać hosting zarządzany czy pomoc ekspertów. Jeśli wolisz skupić się na swojej aplikacji niż na utrzymaniu bazy danych, rozważ manageserwery d lub zoptymalizowany hosting.
sudo firewall-cmd --reload
| Cel | Kluczowy krok / polecenie |
|---|---|
| Weryfikacja usługi | sudo systemctl status mysql --no-pager |
| Instalacja (Ubuntu/Debian) | sudo apt update; sudo apt install -y mysql-server |
| Start i włączenie | sudo systemctl enable -now mysql |
| Zabezpieczenie | sudo mysql_secure_installation |
| Test działania | mysql -u root -p -e "SHOW DATABASES;" |
| Dzienniki | /var/log/mysql/error.log (Ubuntu/Debian) |
| Port 3306 w użyciu | ss -lntp | grep 3306 |

About the author