• Категории
  • Подписка
  • Разместить статью
25/10/10 9 3880 MySQL-сервер баз данных
-

MySQL: установка, настройка, работа с базовыми операторами

В операционной системе Linux, MySQL является одним из самых популярных серверов баз данных (БД). Его популярности способствует высокая произво­дительность, ну и, конечно же, свободное распространение.

Попытаемся разобраться, зачем нужен сервер БД на домашней машине? В первую очередь для работы и изучения допустим того же РНР, хотя этим возможности MySQL не ограничиваются!

В другом случае, можно обойтись и без установки MySQL на своем компьютере — ведь сервер MySQL есть у любого уважающего себя хостинг-провайдера, поэтому для реализации своих WEB-проектов можно использовать его MySQL-сервер, хотя этот вариант довольно дороговат и требует скоростного интернет-соединения, как для экспериментов. Поэтому не будем замарачиватся такими не оптимальными (если не сказать идиотскими!) решениями, а просто подымем у себя MySQL-сервер.

Установка сервера

Для установки MySQL-сервера, в моем случае для Ubuntu 10.10, я использовал Synaptic и выби­рал следующие пакеты:

  • mysql-server-5.1;
  • mysql-client-5.1;
  • mysqladmin.

Это основные пакеты, кроме того я выбрал себе пакеты для работы с php5, python, perl, java. Ваш выбор может быть абсолютно другим.

Первый пакет содержит последнюю версию MySQL-сервера (как вы догадались это версия 5.1, которая по выходу новой, обновится автоматически по запросу), во втором пакете находится MySQL-клиент, т. е. программа, которая будет подключаться к MySQL-серверу, передавать ему SQL-запросы и отображать результат их выполнения. Третий пакет содержит программу для администрирования MySQL-сервера. Плюс к этому будут установлены в автоматическом режиме все необходимые до­полнительные пакеты.

Изменение пароля root, добавление пользователя

Во время установки в оконном режиме инсталлятор попросит ввести пароль на базу и имя локальной папки. Если этого не произошло, сразу после установки можно выполнить команду:

sudo mysqladmin -u root password 1265fg6rf_tr$5s*fjy

Данный пароль вы будете использовать для администрирования сервера (в целях безопасности этот пароль должен отличаться от того, который используется для вхо­да в систему, единственная просьба не забыть его!). Чем мне нравится Linux, так это своим параноидальным разграничением прав пользователей. Поэтому, для обычной работы с сервером создадим обыч­ного пользователя. Для этого вводим команду:

mysql -u root -p mysql

Программа mysql является клиентом MySQL-сервера. В данном случае она должна подключиться к базе данных mysql (служебная база данных), используя имя пользователя root (-u root). Поскольку в предыдущем шаге мы указали пароль для пользователя root (до этого пароль для root не был задан), нам нужно ука­зать параметр -р. После того как программа mysql подключится к серверу, можно будет увидеть приглашение программы. В ответ на него нужно ввести следую­щий SQL-оператор:

mysql> insert into user(Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv) values (‘%’,’username’,password(‘123456’),’Y’,’Y’,’Y’,’Y’);

Только что мы создали пользователя с именем username и паролем 123456. Данный пользователь имеет право использовать SQL-операторы select (выборка из таблицы), insert (добавление новой записи в таблицу), update (об­новление записи), delete (удаление записи). Если нужно, чтобы пользователь имел право создавать и удалять таблицы, тогда добавляем приви­легии Create_priv и Drop_priv:

mysql> insert into user(Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values (‘%’, ‘username’,password(‘123456′),’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);

Данный SQL-оператор можно записать в одну строку, можно разбить на несколько строк — все зависит от удобства. Но в конце каждого SQL-оператора должна быть точка с запятой! Об этом необходимо помнить.

Для выхода из программы mysql нужно ввести команду quit.

Кроме программы mysql в состав MySQL-клиента входит одна очень полезная программа —mysqlshow, которая может вывести список таблиц, которые находятся в той или иной базе данных. Кроме этого, она еще много чего мо­жет, но в данный момент нам нужен пока список таблиц — чтобы знать, какие таблицы есть в той или иной базе данных:

$mysqlshow -p My_test_db

Базовые MySQLоператоры

В этом вопросе, во-первых я не «гуру», а во-вторых есть man-страница, где очень подробным образом все описано. Но в качестве продолжения темы о сервере баз данных и для тех, кто впервые слышит про язык-запросов SQL, не могу не написать пару строк о базовых пяти SQL-операторах: create, insert, update, select и delete (имена операторов можно писать как строчными, так и прописными буквами — разницы нет).

Оператор create служит для создания различных объектов в базе данных. В частности он используется для создания таблиц. Синтаксис данного оператора следующий:

CREATE TABLE имя_таблицы (имя_поля : тип_поля модификатор, имя_поля : тип поля модификатор, [ключи])

Ключ управляет порядком отображения записей в таблице. Бывают первичный и вторичный ключи. Первичный строится только по одному полю таб­лицы, значение этого поля должно быть уникальным, т. е. в таблице не может быть двух полей с одинаковыми значениями ключевого поля. Вторичный может строиться по нескольким полям и условие его уникальности необяза­тельно соблюдать. Обычно вторичные ключи используются для связи таблиц. Пример:

mysql> CREATE TABLE friends (id: int auto_increment, name: varchar(50), email: varchar(30), comment: text, PRIMARY KEY (id));

Наша таблица friends будет содержать четыре поля:

  • id — может принимать целые значения (это будет номер записи), значения поля увеличиваются автоматически (auto_increment). Это сделано для удобства: при добавлении записи не нужно будет помнить номер последней записи — его MySQL укажет автоматически;
  • name — текстовое поле для имени, максимальная длина этого поля — 50 символов;
  • email —тоже текстовое поле, с длиной строки 30 символов;
  • comment — поле типа text, может содержать небольшой текст, объе­мом до 64 Кбайт.
  • Первичным ключом является поле id.

После этого добавим запись в таблицу. Для этого используется оператор insert. Синтаксис его следующий:

INSERT INTO таблица (список полей, в которые нужно вставить значения) VALUES (список значений);

Пример:

mysql> INSERT INTO friends (name, email, comment) VALUES (‘Вася‘,’vasya_the_best@somehost.ru’,’Мой кум!‘);

Можно не указывать список полей, но тогда нужно будет вводить значения для каждого поля, т.е. не указывать значение для поля id мы уже не сможем:

mysql> INSERT INTO friends VALUES (0, Вася‘,’vasya_the_best@somehost.ru’,’Мой кум!);

Для поля id мы указали значение 0, вообще можно указать любое целое значение, оно все равно будет установлено автоматически.

Для выборки записей из таблицы используется оператор select. Синтаксис этого оператора довольно сложный, поэтому рассмотрим его сокращенную версию:

SELECT список_полей FROM таблица WHERE условие;

Например:

mysql> SELECT *

FROM friends;

Данный оператор выведет все записи из таблицы friends. Вместо списка полей мы указали *, поэтому будут выведены все поля. Другой пример данного оператора выглядит так:

mysql> SELECT id, name, email FROM friends;

Данный оператор также выведет все записи из таблицы friends, будут выведены все поля, кроме поля comment. Отдельно вывод поля comment для первой записи:

mysql> SELECT comment FROM friends WHERE id=l;

Вобщем баловаться так можно долго. Для обновления записей используется оператор update. Синтаксис ниже:

UPDATE таблица SET список_полей_и_значений (поле=значение) WHERE условие;

Пример:

mysql> UPDATE friends SET name=’Вася_кум‘, email=macho_boy@host.ru

В случае с оператором update мы обязательно должны задать условие, иначе указанные нами значения полей будут установлены для всех записей, сами понимаете, что это будет!-) Поэтому сделаем так:

mysql> UPDATE friends SET name=’Вася_кум‘, email=macho_boy@host.ru

WHERE id=l;

Данный запрос найдет запись, для которой поле id равно 1, и изменит значения ее полей name и email. Поле comment останется без изменений, как и поле id.

Совсем другая была бы ситуация, если бы поле id не было ключевым, т. е. могло содержать повторяющиеся значения: иными словами, теоретически в нашей таблице могло существовать две записи с одинаковым значением этого поля. Поскольку нам нужно обновить только одну запись, а не все, ко­торые содержат такое же значение поля id, то нам следует указать дополни­тельное условие — limit:

mysql> UPDATE friends SET name=’Вася_кум‘, email=macho_boy@host.ru‘ WHERE id=l LIMIT 1;

Для большей точности можно привести следующий пример:

mysql> UPDATE friends SET name=’Вася_кум‘, email=macho_boy@host.ru‘ WHERE (id=l) and (email=’vasya_the_best@somehost.ru’) LIMIT 1;

Вот теперь точно будет обновлена нужная запись. Условия удаления записи устанавливаются аналогично. Для удаления запи­сей используется оператор delete:

DELETE FROM таблица WHERE условие;

Вот небольшой пример:

mysql> DELETE FROM friends WHERE id=l;

Данный оператор удаляет первую запись в таблице. Для удаления всех записей в таблице используется оператор:

mysql> DELETE FROM friends;

На этом про SQL все. За более подробной информацией по MySQL обращайтесь, допустим, сюда: http://mysql.ru (см. mysql.ru).

Запуск и останов сервера

Для управления сервером используется программа /etc/init.d/mysql. Для запуска сервера нужно передать этой программе параметр start, для останова — stop, а для перезапуска — restart, соответственно:

sudo /etc/init.d/mysql start

sudo /etc/init.d/roysql stop

sudo /etc/init.d/mysql restart

Также для управления сервером можно использовать программу mysqladmin, узнать больше о ней можно с помощью команды:

man mysqladmin


9 комментариев на «“MySQL: установка, настройка, работа с базовыми операторами”»

  1. Ника:

    спасибо за подсказки

  2. wi:

    мде… такая кропотливая работа — главное нигде не ошибиться и все будет нормально. Автор все отлично расписал.

  3. Спасибище. Очень полезная информация!!!!!!!!!!

  4. NnpctO:

    Благодарю за профсоветы! После прочтения статьи проблем и лишних вопросов по поводу установке не возникло. Оставил вашу страницу в Twitter пусть многие чайники закипают ведь знать то это нужно!

  5. Настя:

    спасибо автору за отличный пост

  6. Добавь ещё команды для тех у кого инсталеры есть (emerge, apt-get …)

  7. Никогда не думал, что все относительно просто. Главное нигде не ошибиться. Спасибо за развернутую помощь

  8. pupkin:

    Мне всегда интересовал этот вопрос. Спасибо, что так детально все обьяснили. Нам остается только последовать вашим примерам.

Добавить комментарий

Яндекс.Метрика