MySQL to popularny system zarządzania bazami danych, używany jako dostawca przechowywania danych dla tysięcy aplikacji internetowych i serwerowych. Ten przewodnik pomoże początkującym rozpocząć pracę z MySQL na Linode z systemem Ubuntu 10.04 LTS (Lucid). Na potrzeby tego samouczka założymy, że wykonałeś kroki opisane w naszym Konfigurowanie i zabezpieczanie instancji obliczeniowej, że Twój system jest aktualny i że zalogowałeś się do Linode jako root przez SSH. Jeśli wykonujesz te czynności jako standardowy użytkownik z uprawnieniami sudo, pamiętaj, aby dodać „sudo” do poleceń pokazanych poniżej.
Podstawowa konfiguracja systemu
Upewnij się, że Twój /etc/hosts
plik zawiera sensowne wartości. W poniższym przykładowym pliku zamienisz „12.34.56.78” na adres IP Linode, a „servername.example.com” na w pełni kwalifikowaną nazwę domeny Linode (FQDN). Wskazane jest użycie w tym pliku czegoś unikalnego i łatwego do zapamiętania jako „nazwa serwera”.
- Plik:/ etc/hosty
1 2
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.example.com servername
Następnie upewnij się, że nazwa hosta Linode jest ustawiona na krótką wartość określoną w /etc/hosts
:
echo "servername" > /etc/hostname
hostname -F /etc/hostname
Aby upewnić się, że universe
repozytoria są włączone, zmodyfikuj swój /etc/apt/sources.list
plik do odbicia przykładowego pliku poniżej.
- Plik:/ etc/apt/sources.list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
## main & restricted repositories deb http://us.archive.ubuntu.com/ubuntu/ lucid main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ lucid main restricted deb http://security.ubuntu.com/ubuntu lucid-security main restricted deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted ## universe repositories deb http://us.archive.ubuntu.com/ubuntu/ lucid universe deb-src http://us.archive.ubuntu.com/ubuntu/ lucid universe deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe deb http://security.ubuntu.com/ubuntu lucid-security universe deb-src http://security.ubuntu.com/ubuntu lucid-security universe
Instalowanie MySQL
Upewnij się, że repozytoria pakietów i zainstalowane programy są aktualne, wydając następujące polecenia:
apt-get update
apt-get upgrade --show-upgraded
Zacznij od wydania następującego polecenia w swoim terminalu:
apt-get install mysql-server
Zostaniesz poproszony o ustawienie hasła dla użytkownika root MySQL. Wybierz silne hasło i przechowuj je w bezpiecznym miejscu na przyszłość.
Pakiet serwera MySQL zostanie zainstalowany na twoim serwerze wraz z zależnościami i bibliotekami klienta. Po zainstalowaniu MySQL zaleca się uruchomienie mysql_secure_installation
aby pomóc zabezpieczyć MySQL. Podczas uruchamiania mysql_secure_installation
, pojawi się możliwość zmiany hasła root MySQL, usunięcia kont anonimowych użytkowników, wyłączenia logowania root poza localhost i usunięcia testowych baz danych. Zaleca się, aby odpowiedzieć twierdząco na te opcje. Jeśli pojawi się monit o ponowne załadowanie tabel uprawnień, wybierz opcję tak. Uruchom następujące polecenie, aby uruchomić program:
mysql_secure_installation
Po uruchomieniu mysql_secure_installation
, MySQL jest bezpieczny i gotowy do konfiguracji.
Konfigurowanie MySQL
Domyślnie MySQL przyjmuje pewne założenia dotyczące środowiska serwera w odniesieniu do pamięci. Aby skonfigurować MySQL bardziej konserwatywnie, będziesz musiał edytować niektóre ustawienia w jego pliku konfiguracyjnym. Twój plik powinien wyglądać następująco:
- Plik:/ etc/mysql/my.cnf
1 2 3 4 5 6
key_buffer = 16M max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K
Te ustawienia są tylko sugerowanymi wartościami dla środowiska o małej ilości pamięci; prosimy o dostrojenie ich do odpowiednich wartości dla Twojego serwera. Zapoznaj się z sekcją „Więcej informacji” na końcu tego samouczka, aby uzyskać dodatkowe zasoby na ten temat.
MySQL domyślnie połączy się z hostem lokalnym (127.0.0.1). Zapoznaj się z naszym przewodnikiem po bezpiecznym zdalnym dostępie do MySQL, aby uzyskać informacje na temat łączenia się z Twoimi bazami danych z lokalnymi klientami.
Zezwalanie na nieograniczony dostęp do MySQL na publicznym IP nie jest zalecane, ale możesz zmienić adres, na którym nasłuchuje, modyfikując bind-address
parametr. Jeśli zdecydujesz się powiązać MySQL z publicznym adresem IP, powinieneś wdrożyć reguły zapory, które zezwalają na połączenia tylko z określonych adresów IP.
Korzystanie z MySQL
Standardowym narzędziem do interakcji z MySQL jest mysql
program klienta. Aby rozpocząć, wydaj następujące polecenie po znaku zachęty:
mysql -u root -p
Zostaniesz poproszony o podanie hasła administratora MySQL. Wprowadź hasło, które przydzieliłeś podczas instalowania MySQL, a pojawi się ekran monitora MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.41-3ubuntu12 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Jeśli zapomniałeś hasła roota, użyj narzędzia do rekonfiguracji pakietu, aby zmienić to hasło:
dpkg-reconfigure mysql-server-5.1
Aby wygenerować listę poleceń dla znaku zachęty MySQL, wpisz \h
:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement 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.
For server side help, type 'help contents'
mysql>
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'@localhost IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
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 liczb całkowitych (z automatycznym przyrostem dla nowych rekordów i używanym jako klucz podstawowy), a także dwoma polami do przechowywania nazwy klienta.
Domyślnie dostęp do baz danych będzie ograniczony do połączeń z localhost. Aby bezpiecznie administrować bazami danych ze zdalnej lokalizacji, postępuj zgodnie z naszym przewodnikiem dotyczącym bezpiecznego administrowania mysql za pomocą tunelu SSH. To nie dobrą praktyką jest uruchamianie MySQL na publicznym adresie IP, chyba że masz ku temu bardzo dobry powód.
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