MySQL je systém pro správu relačních databází (RDBMS), který se používá jako backend pro nespočet webových a serverových aplikací. Původně byl vydán v roce 1995 a zůstává oblíbenou volbou pro vývojáře jako databázový server.
Než začnete s touto příručkou, ujistěte se, že jste provedli kroky popsané v našem Nastavení a zabezpečení výpočetní instance. Dále se ujistěte, že jste přihlášeni do systému jako uživatel root.
Instalace MySQL
Vydejte následující příkaz, abyste se ujistili, že vaše úložiště balíčků je aktuální:
emerge --sync
Následující příkaz aktualizuje všechny balíčky a jejich závislosti na systému. Pokud se vám nelíbí spouštění tohoto příkazu, můžete jej přeskočit nebo použít emerge --update world
:
emerge --update --deep world
Chcete-li nainstalovat MySQL, zadejte následující příkaz:
emerge dev-db/mysql
Po dokončení tohoto procesu budete také muset nainstalovat databáze, které používá MySQL. Zadejte následující příkaz:
mysql_install_db
Nyní jste připraveni k prvnímu spuštění serveru MySQL:
/etc/init.d/mysql start
Budete muset spustit mysql_secure_installation
nastavit heslo uživatele root a zabezpečit instanci MySQL. Zadejte následující příkaz:
mysql_secure_installation
Pokud chcete, aby se MySQL spouštěla při startu systému, zadejte následující příkaz:
rc-update add mysql default
Konfigurace MySQL
Ve výchozím nastavení se MySQL váže na localhost. Pokud chcete, aby MySQL naslouchalo na veřejné IP, můžete změnit bind-address
hodnotu v /etc/mysql/my.cnf
aby odrážela IP adresu vašeho Linode. Povolení neomezeného přístupu k MySQL na veřejné IP se nedoporučuje a možná budete chtít zvážit implementaci pravidel brány firewall, která povolí provoz pouze z konkrétních IP adres.
Výše uvedená doporučení nemusí být vhodná pro všechna prostředí, takže se ujistěte, že vaše aplikace nebude vyžadovat jiná nastavení. Podrobnější dokumentaci ke konfiguraci MySQL naleznete v dalších zdrojích v části „Další informace“ této příručky.
Kdykoli upravíte nastavení v /etc/mysql/my.cnf
, budete muset restartovat server MySQL. Zadejte následující příkaz:
/etc/init.d/mysql restart
Používání MySQL
Většina interakcí s MySQL probíhá prostřednictvím mysql
nástroj příkazového řádku. Pro interakci s MySQL zadejte následující příkaz:
mysql -u root -p
Po zobrazení výzvy zadejte heslo, které jste vytvořili během mysql_secure_installation
proces. Jakmile tak učiníte, uvítá vás výzva 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>
Pokud později zapomenete své kořenové heslo MySQL, lze jej resetovat pomocí následující sekvence příkazů:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
Jakmile se přihlásíte, zadejte do řádku MySQL následující příkazy:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
Chcete-li zobrazit seznam dostupných příkazů (ne syntaxe SQL), problém \h
na výzvu 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.
Vytvoříme databázi a přiřadíme k ní uživatele. Na výzvu MySQL zadejte následující příkazy:
CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
exit
Nyní se přihlásíme zpět do klienta MySQL jako testuser
a vytvořte vzorovou tabulku s názvem „zákazníci“. Zadejte následující příkazy:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Tím se vytvoří tabulka s polem ID zákazníka typu INT pro celé číslo (automaticky inkrementováno pro nové záznamy, používá se jako primární klíč) a také dvěma poli pro uložení jména zákazníka. Samozřejmě byste pravděpodobně chtěli o zákazníkovi uložit mnohem více informací, ale přesto je to dobrý příklad běžného případu.
Ladění MySQL
MySQL Tuner je užitečný nástroj, který se připojuje k běžící instanci MySQL a poskytuje doporučení pro konfiguraci na základě pracovní zátěže. 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. Čím déle instance běží, tím lepší rady vám MySQL Tuner poskytne.
Chcete-li nainstalovat MySQL Tuner, zadejte následující příkaz:
emerge dev-db/mysqltuner
Pro spuštění MySQL Tuner jednoduše zadejte:
mysqltuner
Upozorňujeme, že tento nástroj je navržen tak, aby poskytoval návrhy konfigurace a je vynikajícím výchozím bodem. Bylo by rozumné provést další průzkum pro ladění konfigurací založených na aplikacích využívajících MySQL.
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