MySQL: установка, настройка, работа с базовыми операторами
В операционной системе Linux, MySQL является одним из самых популярных серверов баз данных (БД). Его популярности способствует высокая производительность, ну и, конечно же, свободное распространение.
Попытаемся разобраться, зачем нужен сервер БД на домашней машине? В первую очередь для работы и изучения допустим того же РНР, хотя этим возможности MySQL не ограничиваются!
В другом случае, можно обойтись и без установки MySQL на своем компьютере — ведь сервер MySQL есть у любого уважающего себя хостинг-провайдера, поэтому для реализации своих WEB-проектов можно использовать его MySQL-сервер, хотя этот вариант довольно дороговат и требует скоростного интернет-соединения, как для экспериментов. Поэтому не будем замарачиватся такими не оптимальными (если не сказать идиотскими!) решениями, а просто подымем у себя MySQL-сервер.
Установка сервера
Для установки MySQL-сервера, в моем случае для Ubuntu 10.10, я использовал Synaptic и выбирал следующие пакеты:
- mysql-server-5.1;
- mysql-client-5.1;
- mysql—admin.
Это основные пакеты, кроме того я выбрал себе пакеты для работы с php5, python, perl, java. Ваш выбор может быть абсолютно другим.
Первый пакет содержит последнюю версию MySQL-сервера (как вы догадались это версия 5.1, которая по выходу новой, обновится автоматически по запросу), во втором пакете находится MySQL-клиент, т. е. программа, которая будет подключаться к MySQL-серверу, передавать ему SQL-запросы и отображать результат их выполнения. Третий пакет содержит программу для администрирования MySQL-сервера. Плюс к этому будут установлены в автоматическом режиме все необходимые дополнительные пакеты.
Изменение пароля root, добавление пользователя
Во время установки в оконном режиме инсталлятор попросит ввести пароль на базу и имя локальной папки. Если этого не произошло, сразу после установки можно выполнить команду:
Данный пароль вы будете использовать для администрирования сервера (в целях безопасности этот пароль должен отличаться от того, который используется для входа в систему, единственная просьба не забыть его!). Чем мне нравится Linux, так это своим параноидальным разграничением прав пользователей. Поэтому, для обычной работы с сервером создадим обычного пользователя. Для этого вводим команду:
Программа mysql является клиентом MySQL-сервера. В данном случае она должна подключиться к базе данных mysql (служебная база данных), используя имя пользователя root (-u root). Поскольку в предыдущем шаге мы указали пароль для пользователя root (до этого пароль для root не был задан), нам нужно указать параметр -р. После того как программа mysql подключится к серверу, можно будет увидеть приглашение программы. В ответ на него нужно ввести следующий SQL-оператор:
Только что мы создали пользователя с именем username и паролем 123456. Данный пользователь имеет право использовать SQL-операторы select (выборка из таблицы), insert (добавление новой записи в таблицу), update (обновление записи), delete (удаление записи). Если нужно, чтобы пользователь имел право создавать и удалять таблицы, тогда добавляем привилегии Create_priv и Drop_priv:
Данный SQL-оператор можно записать в одну строку, можно разбить на несколько строк — все зависит от удобства. Но в конце каждого SQL-оператора должна быть точка с запятой! Об этом необходимо помнить.
Для выхода из программы mysql нужно ввести команду quit.
Кроме программы mysql в состав MySQL-клиента входит одна очень полезная программа —mysqlshow, которая может вывести список таблиц, которые находятся в той или иной базе данных. Кроме этого, она еще много чего может, но в данный момент нам нужен пока список таблиц — чтобы знать, какие таблицы есть в той или иной базе данных:
Базовые MySQL—операторы
В этом вопросе, во-первых я не «гуру», а во-вторых есть man-страница, где очень подробным образом все описано. Но в качестве продолжения темы о сервере баз данных и для тех, кто впервые слышит про язык-запросов SQL, не могу не написать пару строк о базовых пяти SQL-операторах: create, insert, update, select и delete (имена операторов можно писать как строчными, так и прописными буквами — разницы нет).
Оператор create служит для создания различных объектов в базе данных. В частности он используется для создания таблиц. Синтаксис данного оператора следующий:
CREATE TABLE имя_таблицы (имя_поля : тип_поля модификатор, … имя_поля : тип поля модификатор, [ключи])
Ключ управляет порядком отображения записей в таблице. Бывают первичный и вторичный ключи. Первичный строится только по одному полю таблицы, значение этого поля должно быть уникальным, т. е. в таблице не может быть двух полей с одинаковыми значениями ключевого поля. Вторичный может строиться по нескольким полям и условие его уникальности необязательно соблюдать. Обычно вторичные ключи используются для связи таблиц. Пример:
Наша таблица friends будет содержать четыре поля:
- id — может принимать целые значения (это будет номер записи), значения поля увеличиваются автоматически (auto_increment). Это сделано для удобства: при добавлении записи не нужно будет помнить номер последней записи — его MySQL укажет автоматически;
- name — текстовое поле для имени, максимальная длина этого поля — 50 символов;
- email —тоже текстовое поле, с длиной строки 30 символов;
- comment — поле типа text, может содержать небольшой текст, объемом до 64 Кбайт.
- Первичным ключом является поле id.
После этого добавим запись в таблицу. Для этого используется оператор insert. Синтаксис его следующий:
INSERT INTO таблица (список полей, в которые нужно вставить значения) VALUES (список значений);
Пример:
Можно не указывать список полей, но тогда нужно будет вводить значения для каждого поля, т.е. не указывать значение для поля id мы уже не сможем:
Для поля id мы указали значение 0, вообще можно указать любое целое значение, оно все равно будет установлено автоматически.
Для выборки записей из таблицы используется оператор select. Синтаксис этого оператора довольно сложный, поэтому рассмотрим его сокращенную версию:
SELECT список_полей FROM таблица WHERE условие;
Например:
FROM friends;
Данный оператор выведет все записи из таблицы friends. Вместо списка полей мы указали *, поэтому будут выведены все поля. Другой пример данного оператора выглядит так:
Данный оператор также выведет все записи из таблицы friends, будут выведены все поля, кроме поля comment. Отдельно вывод поля comment для первой записи:
Вобщем баловаться так можно долго. Для обновления записей используется оператор update. Синтаксис ниже:
UPDATE таблица SET список_полей_и_значений (поле=значение) WHERE условие;
Пример:
В случае с оператором update мы обязательно должны задать условие, иначе указанные нами значения полей будут установлены для всех записей, сами понимаете, что это будет!-) Поэтому сделаем так:
WHERE id=l;
Данный запрос найдет запись, для которой поле id равно 1, и изменит значения ее полей name и email. Поле comment останется без изменений, как и поле id.
Совсем другая была бы ситуация, если бы поле id не было ключевым, т. е. могло содержать повторяющиеся значения: иными словами, теоретически в нашей таблице могло существовать две записи с одинаковым значением этого поля. Поскольку нам нужно обновить только одну запись, а не все, которые содержат такое же значение поля id, то нам следует указать дополнительное условие — limit:
Для большей точности можно привести следующий пример:
Вот теперь точно будет обновлена нужная запись. Условия удаления записи устанавливаются аналогично. Для удаления записей используется оператор delete:
DELETE FROM таблица WHERE условие;
Вот небольшой пример:
Данный оператор удаляет первую запись в таблице. Для удаления всех записей в таблице используется оператор:
На этом про SQL все. За более подробной информацией по MySQL обращайтесь, допустим, сюда: http://mysql.ru (см. mysql.ru).
Запуск и останов сервера
Для управления сервером используется программа /etc/init.d/mysql. Для запуска сервера нужно передать этой программе параметр start, для останова — stop, а для перезапуска — restart, соответственно:
Также для управления сервером можно использовать программу mysqladmin, узнать больше о ней можно с помощью команды:
спасибо за подсказки
мде… такая кропотливая работа — главное нигде не ошибиться и все будет нормально. Автор все отлично расписал.
Спасибище. Очень полезная информация!!!!!!!!!!
Благодарю за профсоветы! После прочтения статьи проблем и лишних вопросов по поводу установке не возникло. Оставил вашу страницу в Twitter пусть многие чайники закипают ведь знать то это нужно!
спасибо автору за отличный пост
Добавь ещё команды для тех у кого инсталеры есть (emerge, apt-get …)
Sect0R:
ОК добавлю. Хотя в данном конкретном случае речь шла про Убу.
Никогда не думал, что все относительно просто. Главное нигде не ошибиться. Спасибо за развернутую помощь
Мне всегда интересовал этот вопрос. Спасибо, что так детально все обьяснили. Нам остается только последовать вашим примерам.