English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Управление MySQL

Запуск и остановка сервера MySQL

В Windows системе

В Windows системе, откройте окно командной строки (cmd), перейдите в директорию bin установочного каталога MySQL.

Запуск:

cd c:/mysql/bin
mysqld --console

Закрытие: }}

cd c:/mysql/bin
mysqladmin -uroot shutdown

В Linux системе

Сначала нам нужно проверить, запущен ли сервер MySQL, с помощью следующей команды:

ps -ef | grep mysqld

Если MySql уже запущен, вышеуказанная команда выведет список процессов mysql, Если mysql не запущен, вы можете использовать следующую команду для запуска сервера mysql:

root@host# cd /usr/bin
./mysqld_safe &

Если вы хотите закрыть работающий сервер MySQL, вы можете выполнить следующую команду:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Введите пароль: ********

Настройка пользователей MySQL

Если вам нужно добавить пользователя MySQL, достаточно добавить нового пользователя в таблицу user базы данных mysql.

Ниже приведен пример добавления пользователя, имя пользователя guest, пароль guest123, и предоставление пользователю прав SELECT, INSERT и UPDATE:

root@host# mysql -u root -p
Enter password:********
mysql> use mysql;
Database changed
mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Запрос ОК, затронут 1 строка (0.20 сек)
mysql> FLUSH PRIVILEGES;
Запрос ОК, затронут 1 строка (0.01 сек)
mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host       | user    | password         |
+-----------+---------+------------------+
| localhost | guest  | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 строка в наборе (0.00 сек)

При добавлении пользователя обратите внимание на использование функции шифрования PASSWORD(), предоставляемой MySQL. В вышеуказанных примерах можно увидеть, что пароль пользователя после шифрования выглядит так: 6f8c114b58f2ce9e.

Внимание:В MySQL 5.7 пароль в таблице user был заменен наauthentication_string.

Внимание:Функция шифрования password() была удалена в версии 8.0.11, можно использовать функцию MD5().

Внимание:Внимание: необходимо выполнить FLUSH PRIVILEGES Фраза. Эта команда перезагрузит таблицу прав.

Если вы не используете эту команду, вы не сможете использовать нового пользователя для подключения к серверу mysql,除非 вы перезапустите сервер mysql.

Вы можете指定 права пользователя при его создании, установив 'Y' в соответствующем столбце прав. Список прав пользователей如下:

  • 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

Другой способ добавить пользователя - это использовать команду GRANT SQL. Следующие команды добавят пользователя zara в базу данных TUTORIALS с паролем zara123.

root@host# mysql -u root -p
Enter password:********
mysql> use mysql;
Database changed
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP;
    -> ON TUTORIALS.*;
    -> TO 'zara'@'localhost';
    -> IDENTIFIED BY 'zara123';

Эти команды создадут запись о пользователе в таблице user базы данных mysql.

Внимание: SQL-запросы MySQL заканчиваются точкой с запятой (;) в качестве знака завершения.

Конфигурация файла /etc/my.cnf

В большинстве случаев вам не нужно изменять этот файл конфигурации, по умолчанию он настроен следующим образом:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

В конфигурационном файле вы можете指定 каталог для хранения файлов журналов ошибок, обычно вам не нужно вносить изменения в эти настройки.

Команды управления MySQL

Ниже перечислены часто используемые команды в процессе использования MySQL.

  • USE Имя базы данных :
    Выберите базу данных MySQL, которую нужно обработать, после использования этой команды все команды MySQL будут относиться только к этой базе данных.

    mysql> use w3codebox;
    Database changed
  • SHOW DATABASES:
    Список баз данных системы управления базами данных MySQL.

    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | w3codebox             |
    | cdcol              |
    | mysql              |
    | onethink           |
    | performance_schema |
    | phpmyadmin         |
    | test               |
    | wecenter           |
    | wordpress          |
    +--------------------+
    10 rows in set (0.02 sec)
  • SHOW TABLES:
    Показывает все таблицы в заданной базе данных, перед использованием этой команды необходимо использовать команду use для выбора базы данных, которую нужно обработать.

    mysql> use w3codebox;
    Database changed
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_w3codebox |
    +------------------+
    | employee_tbl     |
    | w3codebox_tbl       |
    | tcount_tbl       |
    +------------------+
    3 rows in set (0.00 sec)
  • SHOW COLUMNS FROM Таблица:
    Показывает атрибуты таблицы данных, тип атрибута, информацию о PRIMARY KEY, информацию о том, является ли NULL, значение по умолчанию и другие данные.

    mysql> SHOW COLUMNS FROM w3codebox_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field           | Type         | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | w3codebox_id | int(11) | NO | PRI | NULL |      |
    | w3codebox_title | varchar(255) | YES |     | NULL |      |
    | w3codebox_author | varchar(255) | YES |     | NULL |      |
    | submission_date | date | YES |     | NULL |      |
    +-----------------+--------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
  • SHOW INDEX FROM Таблица:
    Показывать детальную информацию об индексах таблицы, включая PRIMARY KEY (главный ключ).

    mysql> SHOW INDEX FROM w3codebox_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | w3codebox_tbl |          0 | PRIMARY |            1 | w3codebox_id | A |            2 |     NULL | NULL |      | BTREE |         |             |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 строка в наборе (0.00 сек)
  • SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
    Эта команда выведет информацию о производительности и статистике системы управления базами данных MySQL.

    mysql> SHOW TABLE STATUS FROM w3codebox; # Показать информацию о всех таблицах в базе данных w3codebox
    mysql> SHOW TABLE STATUS FROM w3codebox LIKE 'w3codebox%'; # Информация о таблицах, начинающихся с w3codebox
    mysql> SHOW TABLE STATUS FROM w3codebox LIKE 'w3codebox%'\G; # Результаты запроса распечатаны по столбцам