21.11.2018

MySQL - система управления базами данных

Как ни странно, но с базами данных мы сталкиваемся каждый день, даже не замечая этого... Когда же приходится замечать это (например, разрабатывая СУБД для сайта), возникает вопрос - как делать?

Можно, конечно, разработать свой формат (хорошо подходит для маленьких проектов) и использовать его, преисполнившись гордости, но когда идёт речь о тысячах элементов... Так и я - сначала разработал свою собственную СУБД со своим форматом, узкими возможностями, возможностью перехода СУБД с Perl'а на исполняемый двоичный код... Однако, очень скоро (практически сразу) стало понятно, что на этой "самопальной" технологии далеко не уедешь. И тогда я обратил свой взор на packages/All/mysql-server-xxxx

mysql

Что такое MySQL?

MySQL - это широко распространённая реализация СУБД на базе языка запросов SQL. Этот язык достаточно мощный, чтобы организовывать банк данных (!!!) с разграничением доступа по базам данных, таблицам и даже отдельным колонкам в таблицах (как правило, БД - реляционные; за более подробной информацией по базам данных, а также языку SQL обращаетесь к соответствующей литературе). Этот язык поддерживается такой известной СУБД, как Microsoft Access ™ ;). Язык SQL достаточно простой, а существование для него огромного количества программного обеспечения и интерфейсов для языков программирования (PERL и C не оставлены без внимания) приближает наш мир ещё на один шаг к совершенству;).

Инсталляция MySQL

Тут всё до безобразия просто:

Cоздаются таблицы db, host, user, func, tables_priv, columns_priv (подробнее об этом ниже), затем нас просят не забыть установить пароль для пользователя root, показывают как запускать демон mysqld (да-да, mysql - это именно демон,причём сетевой!) и как тестировать его, куда писать об ошибках. Также в систему добавляется пользователь и группа mysql, от именм которых будет работать mysqld. Помимо сервера в систему добавляется клиент mysql.

Начинаем...

Запускаем демон (через /usr/local/etc/rc.d/mysql-server.sh start, либо через shutdown now, либо через reboot), смотрим кто какие сокеты у нас занимает.

Документация MySQL

mysqlЯ думаю, что не следует пренебрегать инструкциями инсталлятора и игнорировать пароли для доступа к базе. Но для начала посмотрим, куда раскидали документацию по mysql; в /usr/local/share/doc/mysql/ спряталось очень хорошее руководство пользователя (2 Мб в html-формате!) по mysql; ищем в man mysql - выдаёт справку по использованию клиента для mysql, но в ссылках есть и mysqld. Вобщем, на отсутствие документации не жалуемся...

Первоначальная настройка MySQL

MySQL по умолчанию создаёт базы данных в директории /var/db/mysql/. Эта директория является корнем БАНКА ДАННЫХ. Если Вы создаёте какую-либо базу данных, то в этой директории создаётся ещё один каталог с именем базы. MySQL создаёт БД mysql и test. Test пустой, а вот в mysql хранится важная информация. Именно в эту базу данных записываются настройки СУБД, хранятся учётные записи пользователей и другая необходимая информация. Как видите, MySQL хранит информацию о СУБД в самой СУБД!

Чтобы сменить пароль для пользователей подключаемся к СУБД:

bash-2.05a# mysql -h localhost

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 4 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Для создания пользователей для СУБД и управления паролями вам необходим аккаунт суперпользователя, однако в mysql входить в систему как root необязательно; в командной строке введите следующее:

bash-2.05a$ mysql -h localhost -u root -p

Будет выдан запрос на ввод пароля суперпользователя (вообще, опция -u определяет, "под" каким пользователем Вы собираетесь войти в систему, а -p - указывает на необходимость запроса пароля. Если у вас аккаунт root беспарольный, то можете не писать эту опцию ;))

Как Вы уже знаете, вся информация о СУБД хранится в базе данных mysql. Вот её-то мы и будем использовать:

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql>

В руководстве по mysql написано, что для смены пароля суперпользователя необходимо ввести следующую строку:

mysql> SET PASSWORD FOR root=PASSWORD('my_very_cool_pass');

  • MySQL 5.7 еще способна удивить пользователей

    РСУБД (реляционная система управления базами данных) MySQL — это буква M в известной аббревиатуре LAMP. Безусловно, изначальная формула LAMP=Linux+Apache+MySQL+PHP сплошь и рядом выглядит теперь иначе, но MySQL уже оставило в истории свободного ПО свой значимый след. Исторически MySQL возникла как внутренний проект шведской компании MySQL AB, которую купила компания Sun Microsystem в 2008 г., которую, в свою очередь, в 2010 г. поглотила компания Oracle. Исходный код MySQL доступен под свободной лицензией GNU GPL v2, но коммерческие клиенты могут приобрести исходники под проприетарной лицензией.

  1. Последние
  2. Популярные
Загрузка...

Самые популярные метки