Первоначальная настройка MySQL
В этой небольшой статье я хотел лишь описать самые первые шаги, которые нужно делать после того, как вы скачали и установили пакет для работы с базами данных MySQL. Я совсем не собирался здесь описывать сам MySQL и не рассчитывал вдаваться во всякие технические подробности относительно безопасности. Если вы хотите подробной информации, Read The Fine Manual. Если вы хотите как можно быстрее начать делать базы данных, читайте это маленькое руководство.
После того, как вы поставили серверную и клиентскую части пакета MySQL, следующим шагом будет заставить все это работать. Демон базы данных запускается командой mysqld. При помощи ключа [--help] можно посмотреть все доступные опции. Так же этот ключ позволит посмотреть список директорий, с которыми работает MySQL.
Для функционирования пакета, надо создать главную системную базу данных по имени mysql. Все базы создаются в отдельно выделенной папке, которую как раз можно вычислить при помощи mysqld --help. Найдите после длинного списка возможных ключей строчки, явно указывающие на разные директории.
basedir: говорит само за себя - это базовая директория, относительно которой могут быть заданы другие.
datadir: вот в ней-то и будут храниться все базы данных.
Если вы устанавливали MySQl при помощи RPM-пакетов или еще каким-нибудь автоматизированным способом, возможно в этой директории уже существует системная база данных. Если же вы компилировали пакет или переписывали исполняемые файлы вручную, то возможно ее не существует или она пуста. В этом случае базу mysql надо создать с помощью скрипта mysql_install_db. Если не будет никаких ошибок, то после окончания работы скрипта, он попросит вас задать пароль для пользователя root. Что это значит?
Базы данных в MySQL, как и во многих других системах доступны одновременно большому количеству пользователей, которые могут подключаться к серверу MySQL как с локального компьютера, посредством серверных языков и CGI, так и по TCP/IP через клиентов MySQL, находящихся на удаленных компьютерах. После создания, в системной базе будут описаны в том числе привелегии для разных пользователей. Самый главный из них конечно же пользователь root, который имеет полный доступ ко всем базам. Для него надо задать пароль, так как по умолчанию его нет.
shell>mysql -u root mysql
Означает запуск главного MySQL-клиента по имени mysql от имени пользователя root (-u root) и выбор базы данных mysql Далее откроется консолька программы mysql. Делаем самый обычный SQL-запрос:
mysql>UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
Это обновит поля Password для таблицы user, в которой поля user='root'. Другими словами для пользователя root будет установлен пароль new_password закриптованный по методу PASSWORD().
Заставляем MySQL принять изменения:
mysql>FLUSH PRIVILEGES;
Есть еще один способ, работающий на версиях MySQL >= 3.22:
mysql>SET PASSWORD FOR root=PASSWORD('new_password');
или вообще из shell'а с помощью программы mysqladmin:
shell>mysqladmin -u root password new_password
Все, теперь root не сможет просто так войти в программу mysql. Пишем
mysql>exit
и убеждаемся в этом:
shell>mysql -u root
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
Заходить с паролем надо так:
shell>mysql -u root -p
Enter password: *******
Вот и все. Пароль для root'а совсем не обязательно должен быть таким же как его пароль в системе.
Если пароль был случайно забыт, чтобы его задать по новой, придется стереть файлы mysql.frm mysql.MYI и mysql.MYD из папки с базами данных, затем запустить скрипт mysql_install_db и повторить все по новой.
Если вам интересна структура системной базы данных вы можете строить исследовать ее с помощью SQL-запросов из программы mysql, а так же с помощью внутренних команд и утилиты mysqlshow. Например
shell>mysqlshow some_database
покажет список всех таблиц в базе данных some_database, а запрос
mysql>SELECT * FROM some_table;
выдаст содержимое some_table в табличном виде.
ok. Теперь хорошо бы добавить пользователей базы данных, вместе с их правами и паролями.
Используем выражение GRANT. Можно опять вносить прямые поправки в таблицы mysql, но это будет слишком длинно. Итак:
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'some_password' WITH GRANT OPTION;
Это создаст пользователя admin, который сможет делать все что захочет со всеми базами данных и вообще mysql-ем, подключаясь только с localhost и указывая пароль some_password. Чтобы admin мог подключаться с других хостов, надо добавить строчку
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY ' some_password' WITH GRANT OPTION;
Кстати *.* означает к каким базам данных и таблицам имеет доступ admin. Обозначения делаются следующим образом "база.таблица"
Для создания более-менее продвинутого пользователя можно использовать такое выражение:
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,INDEX, CREATE,DROP ON *.* TO poweruser@localhost IDENTIFIED BY 'user_password';
Такой пользователь сможет использовать все основные SQL-команды для данных в таблицах, а так же создавать и удалять базы данных. Однако он не сможет выключать, перезапускать демон MySQL, смотреть на список процессов, не будет иметь доступ к файлам сервера, а так же сможет подключаться к базе данных только с localhost'а и указывая свой пароль.
Вот все возможные опции для привилегий:
SELECT,INSERT,UPDATE,DELETE - одноименные sql-команды операций с данными
INDEX - операции с индексами в таблицах
REFERENCES - работа со ссылками в базах данных и таблицах
CREATE, DROP - создание и удаление баз данных и таблиц
GRANT, ALTER - совершение операций с привилегиями
RELOAD, SHUTDOWN, PROCESS - управление сервером mysql. Перезапустить, убить и посмотреть все подключения соответственно. Точнее это дает право на выполнение команд программы mysqladmin, направленных на исполнение указанных целей
FILE - позволяет загонять в базу данных любой читабельный файл с сервера
Выбирайте сами каких пользователей создавать. Для многопользовательского сервера можно посоветовать делать пользователей, способных только изменять данные одной базы данных. Если всем сервером заведует один вебмастер, вполне можно предоставить ему более широкую свободу действий.
Отлично! Теперь минимум того, что может понадобится от сервера MySQL настроено и можно начинать создавать таблицы и вносить данные.
И не забудьте добавить mysqld в автозапуск.
Удачи!
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Чтобы вырастить плодоносящий сайт - его полезно регулярно поливать и удобрять с помощью рекламы и оптимизации Компания "RedLine" |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.