MySQL е популярна система за управление на база данни, използвана като доставчик на съхранение на данни за хиляди уеб и сървърни приложения. Това ръководство ще помогне на начинаещите да започнат работа с MySQL на Ubuntu Jaunty Linode. За целите на този урок ще приемем, че сте следвали стъпките, описани в нашата настройка и защита на изчислителен екземпляр, че вашата система е актуална и че сте влезли във вашия Linode като root чрез SSH. Ако изпълнявате тези стъпки като стандартен потребител с привилегии sudo, не забравяйте да добавите „sudo“ към командите, показани по-долу.
Инсталиране на MySQL
Уверете се, че вашите хранилища на пакети и инсталираните програми са актуални, като издадете следните команди:
apt-get update
apt-get upgrade --show-upgraded
Започнете, като издадете следната команда във вашия терминал:
apt-get install mysql-server
Ще бъдете подканени да зададете парола за root потребителя на MySQL. Изберете силна парола и я пазете на сигурно място за бъдещи справки.
Сървърният пакет MySQL ще бъде инсталиран на вашия сървър, заедно със зависимости и клиентски библиотеки. След това се уверете, че вашият /etc/hosts
файл има правилни записи, подобни на показаните по-долу:
- Файл:/ etc/hosts
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.mydomain.com servername
Не забравяйте да замените публичния IP адрес на вашия Linode с „12.34.56.78“ в примера по-горе.
След като инсталирате MySQL, се препоръчва да стартирате mysql_secure_installation
, програма, която помага за защитата на MySQL. mysql_secure_installation
ви дава възможност да деактивирате влизането в root от външен локален хост, да премахнете анонимни потребителски акаунти и опцията да премахнете тестовата база данни. Освен това ви позволява да зададете вашата root парола. Изпълнете следната команда, за да изпълните програмата:
mysql_secure_installation
След стартиране на mysql_secure_installation
, MySQL е защитен и готов за конфигуриране.
Конфигуриране на MySQL
По подразбиране MySQL прави някои предположения за вашата сървърна среда по отношение на паметта. За да конфигурирате MySQL по-консервативно, ще трябва да редактирате някои настройки в конфигурационния файл (/etc/mysql/my.cnf
), както следва:
- Файл:/ 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
Тези настройки са само препоръчани стойности за среда с ниска памет; моля, не се колебайте да ги настроите на подходящи стойности за вашия сървър. Консултирайте се с раздела „Повече информация“ в края на този урок за допълнителни ресурси по тази тема.
MySQL ще се свърже с localhost (127.0.0.1) по подразбиране. Разрешаването на неограничен достъп до MySQL на публичен IP не се препоръчва, но можете да промените адреса, който слуша, като промените bind-address
параметър. Ако решите да свържете MySQL към вашия публичен IP адрес, трябва да приложите правила за защитната стена, които позволяват връзки само от конкретни IP адреси.
Използване на MySQL
Стандартният инструмент за взаимодействие с MySQL е mysql
клиентска програма. За да започнете, издайте следната команда при подкана:
mysql -u root -p
Ще бъдете подканени да въведете паролата на root MySQL потребителя. Въведете паролата, която сте задали, когато сте инсталирали MySQL, и ще ви се покаже дисплея на MySQL монитора:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 5.0.75-0ubuntu10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Ако сте забравили вашата root парола, използвайте инструмента за преконфигуриране на пакета, за да промените тази парола:
dpkg-reconfigure mysql-server-5.0
За да генерирате списък с команди за подканата на MySQL, въведете \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 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>
Нека създадем база данни и да й присвоим потребител. Издайте следните команди в подканата на MySQL:
| |
Сега нека влезем обратно в MySQL клиента като testuser
и създайте примерна таблица, наречена „клиенти“. Издайте следните команди:
mysql -u testuser -p
| |
Това създава таблица с поле за идентификатор на клиента от типа INT за цяло число (автоматично увеличено за нови записи, използвано като първичен ключ), както и две полета за съхранение на името на клиента. Разбира се, вероятно бихте искали да съхранявате много повече информация от тази за клиент, но въпреки това това е добър пример за често срещан случай.
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Справочно ръководство за MySQL 5.1
- Ръководство за PHP MySQL
- Примери за Perl DBI за DBD::mysql
- Ръководство за потребителя на MySQLdb