MySQL - bazy danych

  1. Parametry i metody łączenia z MySQL
  2. Tunelowanie SSH, aby połączyć się ze zdalną bazą danych MySQL
  3. phpMyAdmin - dostęp do MySQL przez przeglądarkę internetową
  4. Import i eksport danych MySQL
  5. Jak pracować z MySQL ze skryptów w Perlu
  6. Jak pracować z MySQL ze skryptów w PHP
  7. Ładowanie danych za pomocą LOAD DATA
  8. Dodatkowa baza danych MySQL i dostęp do MySQL (użytkownik MySQL)
  9. Dodatkowa dokumentacja i pomocne linki.

Nasi użytkownicy mogą korzystać z bazy danych MySQL DBMS na swoich wirtualnych serwerach internetowych w granicach określonych przez odpowiednie taryfy. Obecnie działa Wersja: 5.6 Podstawowe kodowanie: cp1251 (Windows). Dodatkowo obsługiwane przez KOI8-R i UTF-8.

Koszt planów taryfowych wirtualnego hostingu, w których obsługiwane są usługi MySQL, obejmuje pewną liczbę baz danych MySQL i jednego użytkownika MySQL. Powyżej tej bazy są tworzone za dodatkową opłatą w aktualnym cenniku.

Bazy danych to systemy przechowywania i przetwarzania danych, do których dostęp uzyskuje się za pomocą Structured Query Language (SQL). Istnieje wiele różnych systemów zarządzania bazami danych (DBMS), ale w środowisku hostingowym zwykle używa się DBMS. Mysql . Powodem tego jest faktyczna orientacja tego DBMS na zadania hostingowe, dostępność na wszystkich popularnych systemach operacyjnych serwera, a także łatwość konfiguracji i administracji.

Wybierając pomiędzy różnymi DBMS, musisz wziąć pod uwagę, że jeśli Twój projekt internetowy nie ma specjalnego obciążenia i złożoności rozwiązań, a Ty, jako programista i administrator, nie masz wystarczających kwalifikacji i doświadczenia w pracy z różnymi DBMS, MySQL alternatywami dla Ciebie w tym przypadku niewiele i prawdopodobnie warto zatrzymać wybór na MySQL. Zwracamy się do artykułu „ Dlaczego MySQL? „Na serwerze hostinfo.ru , gdzie dowiesz się szczegółowo o zaletach i wadach tego konkretnego systemu. Również na stronie dewelopera MySQL jest pełna dokumentacja po rosyjsku.

Parametry i metody łączenia z MySQL

  • Nazwa hosta (serwera) obsługującego MySQL to: uXXXXX.mysql.masterhost.ru
  • Port: 3306
  • Login: odpowiada nazwie platformy wirtualnej - uXXXXX
  • Hasło: określone w liście, który użytkownik otrzymuje podczas rejestracji
  • Nazwa bazy danych: odpowiada nazwie platformy wirtualnej - uXXXXX

Ze względów bezpieczeństwa bezpośredni dostęp do serwerów MySQL z Internetu jest zamknięty (wyjątkiem jest tunel ssh), a klienci otrzymują następujące opcje wykorzystania administracyjnego i bazy danych:

  • dostęp do wiersza poleceń MySQL z powłoka unix
  • pracować z bazą danych ze skryptów użytkownika na Perl , Php i tak dalej
  • zarządzanie bazą za pośrednictwem interfejsu internetowego phpMyAdmin . Dane dostępu są zgłaszane podczas rejestracji, login i hasło pokrywają się ze szczegółami dostępu do samej bazy danych

Tunelowanie SSH, aby połączyć się ze zdalną bazą danych MySQL

Korzystanie z oprogramowania: Putty v.0.70 (ostatnia stabilna wersja na 2017-07-08.)

Wstępne ustawienia połączenia zdalnego:

  • Nazwa hosta: [email protected] - Host dla połączenia SSH, gdzie uXXXX jest numerem witryny.
  • Port: 22
  • Protokół: SSH

Następnie przejdź do karty „Tunele”, jak pokazano na poniższym rysunku, używając tych parametrów dla połączenia:

  • Port źródłowy: 3306 - port do połączenia lokalnego po skonfigurowaniu tunelu.
  • Miejsce docelowe: Lokalne - wyraźnie wskazujemy, że połączenie zostanie nawiązane do lokalnego portu określonego powyżej.
  • Miejsce docelowe: uXXXX.mysql.masterhost.ru Interesujące 306 to host, który zostanie tunelowany do określonego portu (3306 jest standardem dla MySQL)

ryż  2
ryż 2

Teraz musisz dodać ustawienia w menu Przekierowane porty , naciskając przycisk „Dodaj”, jak pokazano na poniższym rysunku, aby uzyskać następujący wynik:

Oryginalna dokumentacja jest dostępna pod adresem strona deweloperska .

ryż  3
ryż 3

Konfiguracja została zakończona, przejdź do pierwszego menu „Sesja”, jak na Rysunku 1, i kliknij przycisk „Otwórz”, aby nawiązać połączenie ze zdalnym serwerem przy użyciu protokołu SSH. Przekazujemy autoryzację na podstawie loginu i hasła, i przechodzimy do basha, będąc lokalnie na twojej stronie / home / uXXXX.

W międzyczasie, zgodnie z naszymi ustawieniami, istnieje tunelowanie połączenia z lokalnym serwerem MySQL przy użyciu protokołu SSH i wewnętrznych narzędzi Putty. W ten sposób, łącząc się z lokalnym portem localhost: 3306 i używając dowolnego oprogramowania do pracy z serwerem MySQL, uzyskujemy dostęp do administracji zdalnej bazy danych, jednocześnie chroniąc nasze połączenie za pomocą protokołu SSH.

phpMyAdmin - dostęp do MySQL przez przeglądarkę internetową

Klienci mogą korzystać z narzędzia phpMyAdmin , aby uzyskać dostęp do MySQL ze zwykłej przeglądarki internetowej. Aby to zrobić, przejdź do strony. http://phpmyadmin.masterhost.ru .

Wymagania dostępu do niego są wysyłane automatycznie na adres kontaktowy od momentu nabycia planu taryfowego z obsługą bazy danych MySQL.

phpMyAdmin - niekomercyjna aplikacja napisana w PHP, która implementuje dość wygodny i funkcjonalny interfejs WWW do bazy danych MySQL.

Szczegółowy przewodnik referencyjny phpMyAdmina można zobaczyć pod adresem:

Aby wejść do interfejsu, musisz wpisać:

  • Login: odpowiada nazwie platformy wirtualnej - uXXXXX
  • Hasło: określone w liście, który użytkownik otrzymuje podczas rejestracji

Zamiast XXXXX musisz zarejestrować numer swojej wirtualnej platformy.

Import i eksport danych MySQL

Eksportowanie i importowanie danych do MySQL jest zazwyczaj wymagane podczas przesyłania informacji z jednej bazy danych MySQL do innej i do wykonywania kopii zapasowych.

Kopie zapasowe danych są czysto technologiczne. Oznacza to, że w przypadku awarii oprogramowania lub sprzętu sprzętowego będziemy mogli odzyskać rzeczywiste dane klienta. Gwarantujemy bezpieczeństwo samych danych, a nie ich kopii zapasowych.

Jeśli jednak istnieje kopia zapasowa na wymaganą datę, jesteśmy gotowi zaspokoić potrzeby klienta i odzyskać dane z powodu zaniedbania. W tym celu musisz złożyć wniosek o darmowy temat od panele sterowania .

Jedynym sposobem na odzyskanie 100% danych jest samodzielne wykonywanie regularnych kopii zapasowych informacji. Aby to zrobić, użyj narzędzia. mysqldump który jest dostępny przez powłoka unix .

Przykładowe polecenia do eksportowania i importowania bazy danych:

mysqldump -u nazwa_użytkownika -p -h nazwa_bazy_danych nazwa_serwera nazwa bazy danych > dump.sql

Dane zostaną zapisane w pliku dump.sql. Następnie (jeśli to konieczne) przywróć dane z kopii zapasowej (zrzutu) w następujący sposób:

mysql -u nazwa użytkownika -p -h nazwa_serwera_bazy_danych nazwa bazy danych <dump.sql

Uruchomione w ten sposób narzędzia MySQL zażądają hasła do bazy danych. Konieczne jest wprowadzenie hasła odpowiedniego użytkownika bazy danych. Jeśli hasło zostało utracone, możesz je zmienić samodzielnie panele sterowania , w sekcji Drzewo usług (menu rozwijane znajduje się w najwyższym wierszu panelu sterowania po prawej stronie).

Domyślnie system zakłada, że ​​dane w bazie danych są przechowywane w kodowaniu UTF-8. Jeśli twoje dane są przechowywane w innym kodowaniu, to po utworzeniu kopii zapasowej (zrzutu) w celu późniejszego poprawnego odzyskania danych, musisz otworzyć utworzony plik za pomocą edytora tekstu i poprawić w nim wiersz:

/ *! 40101 SET NAMES utf8 * /;

Na przykład do kodowania systemu Windows-1251 należy określić:

/ *! 40101 SET NAMES cp1251 * /;

Dodatkowe opcje narzędzia mysqldump:

--add-drop-table - opcja, która dodaje polecenie DROP TABLE przed utworzeniem tabel. Przed przywróceniem tabel z zrzutu tabele o tej samej nazwie w działającej bazie danych zostaną usunięte i ponownie utworzone z kopii zapasowej. Zaleca się stosowanie, aby zapobiec ewentualnym błędom po odzyskaniu;

--add-locks to opcja dodająca polecenia LOCK TABLES przed wykonaniem i UNLOCK TABLE po wykonaniu każdego zrzutu tabeli. Służy do przyspieszenia dostępu do MySQL;

--quote-names jest opcją informującą narzędzie o umieszczaniu cudzysłowów dla nazw tabel i kolumn. Zalecany do użytku dla wersji MySQL młodszych niż 4.1.1. W starszych wersjach jest domyślnie aktywowany.

Opcje --quick i --opt są zalecane, jeśli baza danych MySQL jest zbyt duża, aby zmieścić się w pamięci.

W tym samym czasie narzędzie mysqldump daje błąd:

mysqldump: Brak pamięci (wymagane XXXXX bajtów) mysqldump: Wystąpił błąd: 2008: Brak pamięci klienta MySQL podczas pobierania danych z serwera

W rezultacie linia do tworzenia kopii bazy danych jest uzyskiwana w następujący sposób:

mysqldump --opt -u nazwa_użytkownika -p -h nazwa_serwera_bazy_danych --dod-kropla-tabela nazwa_bazy_danych> dump.sql

albo to:

mysqldump --quick -u nazwa_użytkownika -p -h nazwa_serwera_bazy_danych --dod-kropla-tabela nazwa_bazy_danych> dump.sql

Aby zachować zgodność zrzutu na serwerze innej firmy, zalecamy utworzenie zrzutu bazy danych za pomocą klucza:

--set-variable max_allowed_packet = 2M

albo

-O max_allowed_packet = 2M

Jeśli podczas importu pojawi się błąd podobny do tego

mysqldump: Error 2020: Dostałem pakiet większy niż bajty „max_allowed_packet”, gdy tabela zrzutów `some_table_name` w wierszu: 2 oznacza w bazie danych dane, których nie można podzielić na osobne części, z których każda nie przekracza dwóch megabajtów.

Zazwyczaj dzieje się tak, jeśli baza danych MySQL jest używana do przechowywania zawartości różnych plików, takich jak obrazy lub muzyka, bez umieszczania ich bezpośrednio w systemie plików. W takim przypadku, jeśli rozmiar pliku przekroczy określoną wartość, baza danych stanie się bezużyteczna na naszych serwerach i trzeba będzie albo usunąć takie dane z bazy danych, albo rozważyć użycie serwera bazy danych na Serwer VPS gdzie możesz ustawić żądany limit max_allowed_packet na wymaganą wartość lub nie używać go w ogóle.

Jeśli masz zainstalowany MySQL w wersji 4.0.x na swoim serwerze, aby poprawnie przesłać dane z serwerów innych firm, musisz użyć klucza podczas eksportowania bazy danych:

--compatible = mysql40

Jak pracować z MySQL ze skryptów w Perlu

Aby pracować z MySQL ze skryptów Perla, z reguły używają modułu DBI . Pozwala to na wygodne otwieranie i zamykanie połączeń DBMS, przygotowywanie i wykonywanie zapytań do baz danych, obsługę błędów i tak dalej. Jeśli nie masz doświadczenia z MySQL od Perla, zalecamy książkę „Perl DBI Programming” ( rus , Angielski ).

Przykład pracy z MySQL z Perla DBI:

#! / usr / bin / perl używa DBI; my $ host = "u12345.mysql.masterhost.ru"; # fikcyjny serwer MySQL mój $ port = "3306"; # port, na którym otwieramy połączenie mój $ user = "u12345"; # nazwa użytkownika (fikcyjna) moje $ pass = "hasło"; # hasło moje $ db = $ użytkownik; # nazwa bazy danych - domyślnie równa się nazwa użytkownika print "Typ zawartości: tekst / html n"; $ dbh = DBI-> connect ("DBI: mysql: $ db: $ host: $ port", $ user, $ pass); $ sth = $ dbh-> prepare ("select field1 from table2"); # przygotuj zapytanie $ sth-> execute; # wykonaj zapytanie podczas ($ ref = $ sth-> fetchrow_arrayref) {print "$$ ref [0] n"; # wydrukuj wynik} $ rc = $ sth-> zakończ; # close $ rc = $ dbh-> disconnect; # połączenie

W tym przykładzie najpierw definiujemy zmienne z parametrami dostępu MySQL, a następnie wydajemy nagłówek HTTP, ponieważ mamy skrypt do uruchomienia w sieci, następnie łączymy się z bazą danych, przygotowujemy i wysyłamy wybrane zapytanie, odbieramy i drukujemy wyniki, a następnie zamykamy połączenie Jest to najprostszy skrypt do pracy z MySQL z Perla. Bardziej szczegółowe przykłady można znaleźć w tym artykule .

Jak pracować z MySQL ze skryptów w PHP

Aby pracować z MySQL, możesz użyć narzędzi wbudowanych w język PHP, które są już obsługiwane na serwerze. PHP ma rozwinięty i zrozumiały interfejs do tej bazy danych, dzięki czemu praca z MySQL z PHP jest najłatwiejsza i najwygodniejsza, zwłaszcza dla początkujących webmasterów i programistów internetowych.

# połącz się z serwerem i wybierz naszą bazę danych mysql_connect („u12345.mysql.masterhost.ru”, „u12345”, „password”); mysql_select_db („baza danych”); # przygotuj i wykonaj zapytanie do bazy danych $ query = "SELECT * FROM table"; $ result = mysql_query ($ query) lub die (mysql_error ()); # wydrukuj wyniki wykonywania zapytania podczas ($ i = mysql_fetch_row ($ result)) {echo $ i [0]; echo $ i [1]; .....}

Pełna dokumentacja w języku rosyjskim dotycząca pracy z MySQL ze skryptów PHP jest tutaj . Oprócz opisów znajdziesz tam również wskazówki doświadczonych użytkowników i przykłady korzystania z funkcji wymienionych w dokumentacji. Polecamy również artykuł „ Używanie MySQL w skryptach PHP „Na serwerze hostinfo.ru.

Ładowanie danych za pomocą LOAD DATA

Począwszy od MySQL 3.23.49, LOAD DATA LOCAL jest domyślnie wyłączony przez względy bezpieczeństwa i musi być specjalnie uwzględnione.

Nasz serwer MySQL działa z włączoną opcją LOAD DATA LOCAL, ale konieczne jest włączenie tej funkcjonalności po stronie klienta.

W przypadku narzędzia mysql istnieje kilka opcji włączenia tej opcji:

  1. Parametr --local-infile = 1
  2. Utwórz plik .my.cnf w katalogu domowym i włącz tę opcję dla grupy [mysql], z której korzysta to narzędzie: [mysql] local-infile = 1

Włączenie tego trybu z perl: musisz określić plik konfiguracyjny mysql w dsn podczas łączenia (ponieważ biblioteka libmysql domyślnie nie odczytuje żadnych dodatkowych plików konfiguracyjnych) i grupy w niej, utwórz tę grupę w pliku i ustaw tę grupę jako lokalną -infile = 1:

Na przykład wprowadź ~ / .my.cnf

[perl] local-infile = 1 iw skrypcie tworzymy połączenie w następujący sposób: my $ dsn = "DBI: mysql: database: hostname; mysql_read_default_group = perl;". „mysql_read_default_file = ~ / .my.cnf”; my $ dbh = DBI-> connect ($ dsn, "username", "password") || die "[err]: Nie można połączyć się z MySQL: $!";

Włączenie tego trybu z PHP: musisz mieć swój własny, skompilowany Interpreter PHP.

W funkcji mysql_connect () należy użyć argumentu 128 (wartość stałej CLIENT_LOCAL_FILES) jako piątego parametru.

Przykład:

$ dbh = mysql_connect ($ server, $ user, $ pass, false, 128);

Dodatkowa baza danych MySQL i dostęp do MySQL (użytkownik MySQL)

Użytkownicy otrzymują pewną liczbę baz danych MySQL w ramach zakupionej taryfy. Jednocześnie jedna baza danych jest automatycznie łączona, a szczegóły dostępu do niej są przekazywane w liście z powiadomieniem o ustanowieniu usług. Klienci mogą samodzielnie tworzyć dodatkowe bazy danych i dostęp do MySQL.

Do tego musisz panel sterowania w sekcji Drzewo usług wybierz witrynę, dla której chcesz utworzyć dodatkową usługę, aw tabeli „MySQL” wybierz polecenie „dodaj” dla usługi „Dostęp do MySQL (opcjonalnie)” lub „Baza MySQL (opcjonalnie)”. Hasła dostępu do bazy danych można zmienić, wywołując polecenie „zmień” wymaganego dostępu do MySQL.

Dodatkowa dokumentacja i pomocne linki.

MySQL jest najbardziej popularny wśród programistów DBMS. Jego popularności towarzyszy obszerna i bardzo wysokiej jakości dokumentacja. Po nauce korzystania z niego nie będziesz mieć problemów z dostępem do wysokiej jakości opisu niezbędnych funkcji MySQL.

Zalecamy również zapoznanie się z artykułem na naszej stronie internetowej poświęcony optymalizacji bazy danych MySQL.