MySQL to popularny system zarządzania bazami danych używany w aplikacjach webowych i serwerowych. Ten przewodnik przedstawi, jak zainstalować, skonfigurować i zarządzać MySQL na Linode z systemem Ubuntu 12.04 LTS (Precise Pangolin).
Uwaga Ten przewodnik jest napisany dla użytkownika innego niż root. Polecenia wymagające podwyższonych uprawnień są poprzedzone przedrostkiemsudo
. Jeśli nie znaszsudo
polecenie, możesz sprawdzić nasz przewodnik po użytkownikach i grupach.
Wymagania wstępne
-
Jeśli jeszcze tego nie zrobiłeś, utwórz konto Linode i instancję obliczeniową. Zobacz nasze przewodniki Wprowadzenie do Linode i tworzenie instancji obliczeniowej.
-
Postępuj zgodnie z naszym przewodnikiem Konfigurowanie i zabezpieczanie instancji Compute, aby zaktualizować system i skonfigurować nazwę hosta. Możesz także ustawić strefę czasową, utworzyć ograniczone konto użytkownika i wzmocnić dostęp SSH.
Aby sprawdzić nazwę hosta, uruchom:
hostname hostname -f
Pierwsze polecenie powinno pokazywać Twoją krótką nazwę hosta, a drugie powinno pokazywać w pełni kwalifikowaną nazwę domeny (FQDN), jeśli ją masz.
Zainstaluj MySQL
sudo apt-get install mysql-server
Podczas procesu instalacji zostaniesz poproszony o ustawienie hasła dla użytkownika root MySQL, jak pokazano poniżej. Wybierz silne hasło i przechowuj je w bezpiecznym miejscu na przyszłość.
MySQL domyślnie połączy się z hostem lokalnym (127.0.0.1). Zapoznaj się z naszym przewodnikiem dostępu zdalnego MySQL, aby uzyskać informacje na temat łączenia się z bazami danych za pomocą tunelu SSH.
Uwaga Zezwalanie na nieograniczony dostęp do MySQL na publicznym IP nie jest zalecane, ale możesz zmienić adres, na którym nasłuchuje, modyfikującbind-address
parametr w/etc/my.cnf
. Jeśli zdecydujesz się powiązać MySQL ze swoim publicznym adresem IP, powinieneś zaimplementować reguły zapory, które zezwalają na połączenia tylko z określonych adresów IP.
Harden MySQL Server
Uruchom skrypt mysql_secure_installation, aby rozwiązać kilka problemów związanych z bezpieczeństwem w domyślnej instalacji MySQL.
sudo mysql_secure_installation
Będziesz mieć możliwość zmiany hasła root MySQL, usunięcia kont anonimowych użytkowników, wyłączenia logowania do głównej bazy danych poza localhost i usunięcia testowych baz danych. Zaleca się, aby odpowiedzieć twierdząco na te opcje. Możesz przeczytać więcej o skrypcie w podręczniku MySQL Reference Manual.
Wdróż MySQL
Standardowym narzędziem do interakcji z MySQL jest mysql
klienta, który instaluje się z mysql-server
pakiet.
Zaloguj się jako root
-
Aby zalogować się do MySQL jako użytkownik root:
mysql -u root -p
-
Po wyświetleniu monitu wprowadź hasło roota przypisane podczas
mysql_secure_installation
skrypt został uruchomiony.Zostanie wyświetlony monit monitora MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
-
Aby wygenerować listę poleceń dla wiersza MySQL, wpisz
\h
. Zobaczysz wtedy: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. For server side help, type 'help contents' mysql>
Utwórz nowego użytkownika i bazę danych MySQL
-
W poniższym przykładzie
testdb
to nazwa bazy danych,testuser
to użytkownik, apassword
to hasło użytkownika.create database testdb; create user 'testuser'@localhost identified by 'password'; grant all on testdb.* to 'testuser';
Możesz skrócić ten proces, tworząc użytkownika gdy przypisywanie uprawnień do bazy danych:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Wyjdź z MySQL.
exit
Utwórz przykładową tabelę
-
Zaloguj się ponownie jako
testuser
.mysql -u testuser -p
-
Utwórz przykładową tabelę o nazwie
customers
. Tworzy to tabelę z polem ID klienta typuINT
dla liczby całkowitej (automatyczna inkrementacja dla nowych rekordów, używana jako klucz podstawowy), a także dwa pola do przechowywania nazwy klienta.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Następnie wyjdź z MySQL.
exit
Zresetuj hasło roota MySQL
Jeśli zapomnisz hasła root MySQL, możesz je zresetować.
-
Zatrzymaj bieżącą instancję serwera MySQL.
sudo service mysql stop
-
Użyj dpkg, aby ponownie uruchomić proces konfiguracji, który MySQL przechodzi podczas pierwszej instalacji. Ponownie zostaniesz poproszony o ustawienie hasła roota.
sudo dpkg-reconfigure mysql-server-5.5
Teraz będziesz mógł zalogować się ponownie za pomocą mysql -u root -p
.
Dostosuj MySQL
MySQL Tuner to skrypt Perla, który łączy się z uruchomioną 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. Zalecenia MySQL Tuner będą tym bardziej precyzyjne, im dłużej działa instancja.
-
Zainstaluj MySQL Tuner z repozytoriów Ubuntu.
sudo apt-get install mysqltuner
-
Aby go uruchomić:
mysqltuner
Zostaniesz poproszony o podanie nazwy i hasła użytkownika root MySQL. Dane wyjściowe pokażą dwa obszary zainteresowania:zalecenia ogólne i zmienne do dostosowania.
MySQL Tuner to doskonały punkt wyjścia do optymalizacji serwera MySQL, ale zalecane są dodatkowe badania dotyczące konfiguracji dostosowanych do aplikacji wykorzystujących MySQL na Twoim Linode.
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