MySQL е популярна система за управление на база данни, използвана като доставчик на съхранение на данни за хиляди уеб и сървърни приложения. Това ръководство ще помогне на начинаещите да започнат с MySQL на Ubuntu 10.10 (Maverick) Linode. Предполага се, че сте изпълнили стъпките, описани в нашата настройка и защита на изчислителен екземпляр, че вашата система е актуална и че сте влезли във вашия Linode като root чрез SSH.
Основна системна конфигурация
Променете вашия /etc/hosts
файл, за да прилича на следния пример. Заменете „example.com“ със собственото си име на домейн и изберете уникално име, с което да замените „systemname“. Това ще бъде FQDN на вашата система (пълно квалифицирано име на домейн). Заменете „12.34.56.78“ с IP адреса на вашия Linode.
- Файл:/ etc/hosts
1 2
127.0.0.1 localhost.localdomain localhost 12.34.56.78 systemname.example.com systemname
Издайте следните команди, за да зададете името на хоста на вашата система, като замените „systemname“ с краткото име на хост, което сте избрали по-горе.
echo "systemname" > /etc/hostname
hostname -F /etc/hostname
Инсталирайте MySQL
Уверете се, че вашите хранилища на пакети и инсталираните програми са актуални, като издадете следните команди:
apt-get update
apt-get upgrade --show-upgraded
Започнете, като издадете следната команда във вашия терминал:
apt-get install mysql-server
Ще бъдете подканени да зададете парола за root потребителя на MySQL. Изберете силна парола и я пазете на сигурно място за бъдещи справки.
Сървърният пакет MySQL ще бъде инсталиран на вашия сървър, заедно със зависимости и клиентски библиотеки. След като инсталирате MySQL, се препоръчва да стартирате mysql_secure_installation
за да помогне за защитата на MySQL. Препоръчително е да приемете отговорите по подразбиране на програмата. Ако бъдете подканени да презаредите привилегиите, изберете „да“. Изпълнете следната команда, за да изпълните програмата:
mysql_secure_installation
След стартиране на mysql_secure_installation
, MySQL е защитен и готов за конфигуриране.
Конфигуриране на MySQL
По подразбиране MySQL прави някои предположения за вашата сървърна среда по отношение на паметта. За да конфигурирате MySQL по-консервативно, ще трябва да редактирате някои настройки в неговия конфигурационен файл. Вашият файл трябва да прилича на следното:
- Файл:/ 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, рестартирайте го, като издадете следната команда:
restart mysql
MySQL ще се свърже с localhost (127.0.0.1) по подразбиране. Моля, вижте нашето ръководство за отдалечен достъп до MySQL за информация относно свързването с вашите бази данни с локални клиенти.
Разрешаването на неограничен достъп до 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 34
Server version: 5.1.49-1ubuntu8 (Ubuntu)
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>
Ако сте забравили вашата root парола, използвайте инструмента за преконфигуриране на пакета, за да промените тази парола:
dpkg-reconfigure mysql-server-5.1
За да генерирате списък с команди за подканата на 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 the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement 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:
CREATE DATABASE testdb;
CREATE USER 'testuser'@localhost IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
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 за цяло число (автоматично нарастващо за нови записи и използвано като първичен ключ), както и две полета за съхранение на името на клиента.
По подразбиране достъпът до бази данни ще бъде ограничен до връзки от localhost. За да администрирате сигурно вашите бази данни от отдалечено място, моля, следвайте нашето ръководство за сигурно администриране на mysql със SSH тунел. Това не добра практика да стартирате MySQL на вашия публичен IP адрес, освен ако нямате много основателна причина за това.
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Справочно ръководство за MySQL 5.1
- Ръководство за PHP MySQL
- Примери за Perl DBI за DBD::mysql
- Ръководство за потребителя на MySQLdb