MySQL to system zarządzania relacyjnymi bazami danych (RDBMS), który jest używany jako zaplecze dla niezliczonych aplikacji internetowych i serwerowych. Pierwotnie wydany w 1995 roku, pozostaje popularnym wyborem dla programistów jako serwer bazy danych.
Przed rozpoczęciem tego przewodnika upewnij się, że wykonałeś czynności opisane w sekcji Konfigurowanie i zabezpieczanie instancji Compute. Dodatkowo upewnij się, że jesteś zalogowany do systemu jako użytkownik root.
Instalowanie MySQL
Wydaj następujące polecenie, aby upewnić się, że repozytorium pakietów jest aktualne:
emerge --sync
Następujące polecenie zaktualizuje wszystkie pakiety i ich zależności w systemie. Jeśli nie czujesz się dobrze z tym poleceniem, możesz je pominąć lub użyć emerge --update world
:
emerge --update --deep world
Wydaj następujące polecenie, aby zainstalować MySQL:
emerge dev-db/mysql
Po zakończeniu tego procesu konieczne będzie również zainstalowanie baz danych używanych przez MySQL. Wydaj następujące polecenie:
mysql_install_db
Jesteś teraz gotowy do pierwszego uruchomienia serwera MySQL:
/etc/init.d/mysql start
Będziesz musiał uruchomić mysql_secure_installation
aby ustawić hasło roota i zabezpieczyć instancję MySQL. Wydaj następujące polecenie:
mysql_secure_installation
Jeśli chcesz, aby MySQL działał podczas uruchamiania systemu, wydaj następujące polecenie:
rc-update add mysql default
Konfigurowanie MySQL
Domyślnie MySQL łączy się z hostem lokalnym. Jeśli chcesz, aby MySQL nasłuchiwał na publicznym IP, możesz zmienić bind-address
wartość w /etc/mysql/my.cnf
aby odzwierciedlić adres IP twojego Linode. Zezwalanie na nieograniczony dostęp do MySQL na publicznym adresie IP nie jest zalecane i możesz rozważyć wdrożenie reguł zapory sieciowej, aby zezwalać tylko na ruch z określonych adresów IP.
Wymienione powyżej sugestie mogą nie być odpowiednie dla wszystkich środowisk, więc upewnij się, że Twoja aplikacja nie będzie wymagała innych ustawień. Zapoznaj się z dodatkowymi zasobami w sekcji „Więcej informacji” tego przewodnika, aby uzyskać bardziej szczegółową dokumentację dotyczącą konfiguracji MySQL.
Za każdym razem, gdy modyfikujesz ustawienia w /etc/mysql/my.cnf
, konieczne będzie ponowne uruchomienie serwera MySQL. Wydaj następujące polecenie:
/etc/init.d/mysql restart
Korzystanie z MySQL
Większość interakcji z MySQL odbywa się za pośrednictwem mysql
narzędzie wiersza poleceń. Wydaj następujące polecenie, aby wejść w interakcję z MySQL:
mysql -u root -p
Po wyświetleniu monitu wprowadź hasło utworzone podczas mysql_secure_installation
proces. Gdy to zrobisz, zostaniesz powitany monitem MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.51-log Gentoo Linux mysql-5.1.51
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Jeśli później zapomnisz hasła root MySQL, możesz je zresetować za pomocą następującej sekwencji poleceń:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
Po zalogowaniu wprowadź następujące polecenia po znaku zachęty MySQL:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
Aby zobaczyć listę dostępnych poleceń (nie składnia SQL), problem \h
po znaku zachęty MySQL:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
Stwórzmy bazę danych i przypiszmy do niej użytkownika. Wydaj następujące polecenia po znaku zachęty MySQL:
CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
exit
Teraz zalogujmy się ponownie do klienta MySQL jako testuser
i utwórz przykładową tabelę o nazwie „klienci”. Wydaj następujące polecenia:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Tworzy to tabelę z polem identyfikatora klienta typu INT dla liczby całkowitej (z automatycznym przyrostem dla nowych rekordów, używanym jako klucz podstawowy), a także dwoma polami do przechowywania nazwy klienta. Oczywiście prawdopodobnie chciałbyś przechowywać o wiele więcej informacji o kliencie, ale mimo to jest to dobry przykład powszechnego przypadku.
Dostrajanie MySQL
MySQL Tuner to przydatne narzędzie, które łączy się z działającą instancją MySQL i udostępnia zalecenia dotyczące konfiguracji na podstawie obciążenia. W idealnym przypadku instancja MySQL powinna działać przez co najmniej 24 godziny przed uruchomieniem tunera. Im dłużej działa instancja, tym lepsze porady zapewni MySQL Tuner.
Aby zainstalować MySQL Tuner, wydaj następujące polecenie:
emerge dev-db/mysqltuner
Aby uruchomić MySQL Tuner, po prostu wpisz:
mysqltuner
Należy pamiętać, że to narzędzie ma na celu dostarczanie sugestii dotyczących konfiguracji i jest doskonałym punktem wyjścia. Rozsądnie byłoby przeprowadzić dodatkowe badania w celu dostrojenia konfiguracji w oparciu o aplikacje wykorzystujące MySQL.
Więcej informacji
Dodatkowe informacje na ten temat można znaleźć w poniższych zasobach. Chociaż są one dostarczane w nadziei, że będą przydatne, należy pamiętać, że nie możemy ręczyć za dokładność ani aktualność materiałów hostowanych zewnętrznie.
- Podręcznik MySQL 5.1
- Instrukcja PHP MySQL
- Przykłady Perl DBI dla DBD::mysql
- Podręcznik użytkownika MySQLdb