MySQL е система за управление на релационна база данни (RDBMS), която се използва като бекенд за безброй уеб и сървърни приложения. Първоначално пуснат през 1995 г., той остава популярен избор за разработчиците като сървър на база данни.
Преди да започнете това ръководство, моля, уверете се, че сте изпълнили стъпките, описани в нашето Настройка и защита на компютърен екземпляр. Освен това се уверете, че сте влезли в системата си като root потребител.
Инсталиране на MySQL
Издайте следната команда, за да се уверите, че вашето хранилище на пакети е актуално:
emerge --sync
Следната команда ще актуализира всички пакети и техните зависимости от системата. Ако не ви е удобно да изпълнявате тази команда, можете да я пропуснете или да използвате emerge --update world
:
emerge --update --deep world
Издайте следната команда, за да инсталирате MySQL:
emerge dev-db/mysql
След като този процес приключи, ще трябва да инсталирате и базите данни, които MySQL използва. Издайте следната команда:
mysql_install_db
Вече сте готови да стартирате MySQL сървъра за първи път:
/etc/init.d/mysql start
Ще трябва да стартирате mysql_secure_installation
за да зададете root парола и да защитите своя MySQL екземпляр. Издайте следната команда:
mysql_secure_installation
Ако искате MySQL да се стартира при стартиране на системата, издайте следната команда:
rc-update add mysql default
Конфигуриране на MySQL
По подразбиране MySQL се свързва с localhost. Ако искате MySQL да слуша на публичен IP, можете да промените bind-address
стойност в /etc/mysql/my.cnf
за да отразява IP адреса на вашия Linode. Разрешаването на неограничен достъп до MySQL на публичен IP адрес не се препоръчва и може да искате да обмислите внедряване на правила за защитната стена, за да разрешавате трафик само от конкретни IP адреси.
Изброените по-горе предложения може да не са подходящи за всички среди, така че бъдете сигурни, че приложението ви няма да изисква различни настройки. Моля, вижте допълнителните ресурси в раздела „Повече информация“ на това ръководство за по-подробна документация относно конфигурирането на MySQL.
Всеки път, когато променяте настройките в /etc/mysql/my.cnf
, ще трябва да рестартирате MySQL сървъра. Издайте следната команда:
/etc/init.d/mysql restart
Използване на MySQL
Повечето взаимодействия с MySQL се осъществяват чрез mysql
помощна програма на командния ред. Издайте следната команда, за да взаимодействате с MySQL:
mysql -u root -p
Когато бъдете подканени, въведете паролата, която сте създали по време на mysql_secure_installation
процес. След като го направите, ще бъдете посрещнати с подканата на 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>
Ако забравите вашата MySQL root парола на по-късна дата, тя може да бъде нулирана със следната последователност от команди:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
След като влезете, въведете следните команди в подканата на MySQL:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
За да видите списък с наличните команди (не SQL синтаксис), издаване на \h
в подканата на 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.
Нека създадем база данни и да й присвоим потребител. Издайте следните команди в подканата на MySQL:
CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
exit
Сега нека влезем обратно в MySQL клиента като testuser
и създайте примерна таблица, наречена „клиенти“. Издайте следните команди:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Това създава таблица с поле за идентификатор на клиента от типа INT за цяло число (автоматично увеличено за нови записи, използвано като първичен ключ), както и две полета за съхранение на името на клиента. Разбира се, вероятно бихте искали да съхранявате много повече информация от тази за клиент, но въпреки това това е добър пример за често срещан случай.
Настройка на MySQL
MySQL Tuner е полезен инструмент, който се свързва с работещ екземпляр на MySQL и предоставя препоръки за конфигурация въз основа на работното натоварване. В идеалния случай MySQL екземплярът трябва да работи поне 24 часа, преди да стартира тунера. Колкото по-дълго е работил екземплярът, толкова по-добри съвети ще предостави MySQL Tuner.
За да инсталирате MySQL Tuner, изпълнете следната команда:
emerge dev-db/mysqltuner
За да стартирате MySQL Tuner, просто въведете:
mysqltuner
Моля, имайте предвид, че този инструмент е предназначен да предоставя предложения за конфигурация и е отлична отправна точка. Би било разумно да се извърши допълнително проучване за настройка на конфигурации въз основа на приложението(ата), използващо MySQL.
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Справочно ръководство за MySQL 5.1
- Ръководство за PHP MySQL
- Примери за Perl DBI за DBD::mysql
- Ръководство за потребителя на MySQLdb