MySQL je populární systém pro správu databází používaný pro webové a serverové aplikace. Tato příručka představí, jak nainstalovat, nakonfigurovat a spravovat MySQL na Linode se systémem Ubuntu 12.04 LTS (Precise Pangolin).
Poznámka Tato příručka je napsána pro uživatele bez oprávnění root. Příkazy, které vyžadují zvýšená oprávnění, mají předponusudo
. Pokud neznátesudo
můžete se podívat na naši příručku Uživatelé a skupiny.
Předpoklady
-
Pokud jste tak ještě neučinili, vytvořte si účet Linode a Compute Instance. Podívejte se na naše příručky Začínáme s Linode a Vytvoření výpočetní instance.
-
Při aktualizaci systému a konfiguraci názvu hostitele postupujte podle našeho průvodce nastavením a zabezpečením výpočetní instance. Můžete také chtít nastavit časové pásmo, vytvořit omezený uživatelský účet a posílit SSH přístup.
Chcete-li zkontrolovat název hostitele, spusťte:
hostname hostname -f
První příkaz by měl zobrazit váš krátký název hostitele a druhý by měl zobrazit váš plně kvalifikovaný název domény (FQDN), pokud jej máte přiřazený.
Instalovat MySQL
sudo apt-get install mysql-server
Během procesu instalace budete vyzváni k nastavení hesla pro uživatele root MySQL, jak je znázorněno níže. Zvolte si silné heslo a uschovejte ho na bezpečném místě pro budoucí použití.
MySQL se standardně váže na localhost (127.0.0.1). Informace o připojení k databázím pomocí tunelu SSH naleznete v naší příručce pro vzdálený přístup MySQL.
Poznámka Povolení neomezeného přístupu k MySQL na veřejné IP se nedoporučuje, ale adresu, na které poslouchá, můžete změnit úpravoubind-address
parametr v/etc/my.cnf
. Pokud se rozhodnete svázat MySQL se svou veřejnou IP, měli byste implementovat pravidla brány firewall, která povolují připojení pouze z konkrétních IP adres.
Harden MySQL Server
Spuštěním skriptu mysql_secure_installation vyřešíte několik bezpečnostních problémů ve výchozí instalaci MySQL.
sudo mysql_secure_installation
Budete mít možnost změnit heslo root MySQL, odebrat anonymní uživatelské účty, zakázat přihlášení ke kořenové databázi mimo localhost a odebrat testovací databáze. Na tyto možnosti se doporučuje odpovědět ano. Více o skriptu si můžete přečíst v referenční příručce MySQL.
Nasazení MySQL
Standardním nástrojem pro interakci s MySQL je mysql
klient, který se instaluje pomocí mysql-server
balíček.
Přihlášení uživatele root
-
Chcete-li se přihlásit do MySQL jako uživatel root:
mysql -u root -p
-
Po zobrazení výzvy zadejte heslo uživatele root, které jste přiřadili při
mysql_secure_installation
skript byl spuštěn.Poté se zobrazí výzva k monitorování 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>
-
Chcete-li vygenerovat seznam příkazů pro výzvu MySQL, zadejte
\h
. Poté uvidíte: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>
Vytvoření nového uživatele a databáze MySQL
-
V níže uvedeném příkladu
testdb
je název databáze,testuser
je uživatel apassword
je heslo uživatele.create database testdb; create user 'testuser'@localhost identified by 'password'; grant all on testdb.* to 'testuser';
Tento proces můžete zkrátit vytvořením uživatele zatímco přiřazení oprávnění k databázi:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Ukončete MySQL.
exit
Vytvoření ukázkové tabulky
-
Přihlaste se zpět jako
testuser
.mysql -u testuser -p
-
Vytvořte vzorovou tabulku s názvem
customers
. Tím se vytvoří tabulka s polem ID zákazníka typuINT
pro celé číslo (automaticky inkrementováno pro nové záznamy, používá se jako primární klíč) a také dvě pole pro uložení jména zákazníka.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Poté ukončete MySQL.
exit
Obnovení hesla kořenového adresáře MySQL
Pokud zapomenete své kořenové heslo pro MySQL, lze jej resetovat.
-
Zastavte aktuální instanci serveru MySQL.
sudo service mysql stop
-
Pomocí dpkg znovu spusťte konfigurační proces, kterým MySQL prochází při první instalaci. Znovu budete požádáni o nastavení hesla uživatele root.
sudo dpkg-reconfigure mysql-server-5.5
Nyní se budete moci znovu přihlásit pomocí mysql -u root -p
.
Vylaďte MySQL
MySQL Tuner je skript v Perlu, který se připojuje k běžící instanci MySQL a poskytuje doporučení pro konfiguraci na základě pracovního vytížení. V ideálním případě by instance MySQL měla být v provozu alespoň 24 hodin před spuštěním tuneru. Doporučení MySQL Tuner budou tím přesnější, čím déle bude instance spuštěna.
-
Nainstalujte MySQL Tuner z repozitářů Ubuntu.
sudo apt-get install mysqltuner
-
Chcete-li jej spustit:
mysqltuner
Budete požádáni o jméno a heslo uživatele root MySQL. Výstup zobrazí dvě oblasti zájmu:Obecná doporučení a Proměnné k úpravě.
MySQL Tuner je vynikajícím výchozím bodem pro optimalizaci serveru MySQL, ale doporučujeme další výzkum pro konfigurace přizpůsobené aplikacím využívajícím MySQL na vašem Linode.
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- Referenční příručka MySQL 5.1
- Příručka PHP MySQL
- Příklady DBI v Perlu pro DBD::mysql
- Uživatelská příručka MySQLdb