SDB:Настройка MySQL

Перейти к: навигация, поиск

Проверено в openSUSE

Рекомендуемые статьи


Ключевые слова: "Настройка 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, либо требование запроса каждый раз. Хранить напрямую в файле настроек небезопасно.

При успешной установке в соответствии с руководством программы Вам будет представлен пользовательский интуитивно понятный веб-интерфейс.