SDB:Настройка MySQL
Рекомендуемые статьи
Связанные статьи
Ключевые слова: "Настройка MySQL", "Безопасность MySQL", "Руководство MySQL", "Настройка LAMP"
Содержание
Требования
Настройку MySQL можно провести тремя способами:
- Первый заключается в использовании командной строки и не требует кроме MySQL ничего дополнительно.
- Второй заключается в использовании ПО phpMyAdmin и требует помимо самого ПО также наличие настроенного HTTP сервера.
- Для openSUSE 11.4: Использование GUI программ для управления MySQL например Workbench (пакет mysql-workbench)
Настройка
С использованием командной строки
Для вызова клиента MySQL необходимо в командной строке ввести следующее:
mysql -u root -p
Параметр -u определяет имя пользователя (пользователя mysql не системного), под которым будет работать клиент, а -p запрос на ввод пароля. Соответственно после ввода команды необходимо ввести пароль.
Если вызов произведён успешно, то Вы увидите примерно следующую информацию:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.0.45 SUSE MySQL RPM Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
На приглашение mysql> отвечаем:
use mysql;
Таким образом будет выбрана системная база данных для настройки MySQL.
Далее можно ввести команду для отображения списка пользователей:
select * from user;
Нужно окно командной строки довольно крупного размера для того, чтобы увидеть аккуратно оформленную таблицу, выведенную в ответ. Можно скопировать ответ в блокнот и более наглядно разглядеть таблицу.
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+ | Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | +-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+ | localhost | root | *7E01E438A25A0E5ABEC0B71067DD29BCEB066E98 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | | mycomp | root | | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | | 127.0.0.1 | root | | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | +-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+ 3 rows in set (0.03 sec)
В эту таблицу для безопасности рекомендуется добавить ещё одну строчку с другим именем пользователя и паролем (не root). Права могут быть такие же, как у root. Это рекомендуется, как так часто имя пользователя и пароль для подключения к MySQL хранятся в скриптах PHP в незащифрованном виде, что может создать угрозу безопасности для всей ОС вцелом.
Добавление строки в таблицу производится следующим образом:
insert into user values ( 'localhost', 'new_user', PASSWORD('new_password'), 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0', '0' );
Аргументы, указанные в скобках, должны совпадать по назначению со столбцами таблицы.
Так же необходимо сменить пароль пользователю 'root', для этого используйте SQL запрос "UPDATE":
UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
Он обновит поля Password в таблице user, с полем user='root'. Таким образом для пользователя root будет установлен пароль 'new_password' методом PASSWORD().
Для незамедлительного принятия изменений в правах пользования MySQL необходимо ввести:
flush privileges;
Эту же задачи можно решить из системной консоли с помощью команды 'mysqladmin'. Смена пароля пользователю 'root'
shell>mysqladmin -u root password new_password
После этого можно для проверки выйти из MySQL клиента:
exit
И вновь войти, только уже под новыми данными:
mysql -u new_user -p new_password
Если Вы смогли войти успешно, то всё сделано верно. (В противном случае нужно вновь зайти под root, попытаться удалить пользователя и добавить вновь.) Теперь можно создать тестовую базу данных:
create database testdb;
В случае успеха будет ответ Query OK.
Далее нужно выбрать созданную базу данных:
use testdb;
В ответ нужно получить подтверждение Database changed.
Также можно создать тестовую пустую таблицу:
create table test_table ( col integer );
Таким образом создана тестовая база данных и тестовая таблица, которых можно использовать для различных тестовых целей.
Чтобы выйти из MySQL, введите "exit".
Резюме полученных настроек (в соответствии с приведённым примером):
- Имя пользователя: new_user
- Пароль пользователя: new_password
- MySQL сервер: localhost
- Имя базы данных: testdb
- Таблица: test_table
С использованием phpMyAdmin
Основную информацию лучше смотреть в документации по установке данного ПО.
При выборе варианта хранения пароля пользователя (во время установки phpMyAdmin) лучше выбрать вариант с cookie, либо требование запроса каждый раз. Хранить напрямую в файле настроек небезопасно.
При успешной установке в соответствии с руководством программы Вам будет представлен пользовательский интуитивно понятный веб-интерфейс.