Android

Как управлять базами данных и пользователями mysql из командной строки

Ангел Бэби Новые серии - Игра окончена (29 серия) Поучительные мультики для детей

Ангел Бэби Новые серии - Игра окончена (29 серия) Поучительные мультики для детей

Оглавление:

Anonim

MySQL - самая популярная система управления реляционными базами данных с открытым исходным кодом. Сервер MySQL позволяет нам создавать множество пользователей и баз данных и предоставлять соответствующие привилегии, чтобы пользователи могли получать доступ к базам данных и управлять ими.

В этом руководстве объясняется, как использовать командную строку для создания и управления базами данных и пользователями MySQL или MariaDB.

Прежде чем вы начнете

Прежде чем вы начнете с этого учебника, мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB. Все команды будут выполнены от имени пользователя root.

Чтобы открыть приглашение MySQL, введите следующую команду и при появлении запроса введите пароль пользователя root MySQL:

mysql -u root -p

Создать новую базу данных MySQL

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

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

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

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

В приведенных выше выходных данных Query OK означает, что запрос был успешным, а 1 warning говорит нам, что база данных уже существует и новая база данных не была создана.

Список всех баз данных MySQL

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

SHOW DATABASES;

Вывод будет выглядеть примерно так:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Базы данных information_schema , mysql , performance_schema и sys создаются во время установки и хранят информацию обо всех других базах данных, конфигурации системы, пользователях, разрешениях и других важных данных. Эти базы данных необходимы для правильной функциональности установки MySQL.

Удалить базу данных MySQL

Удалить базу данных MySQL так же просто, как запустить одну команду. Это необратимое действие и должно выполняться с осторожностью. Убедитесь, что вы не удаляете неправильную базу данных, так как после удаления базы данных ее невозможно восстановить.

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

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Чтобы избежать этой ошибки, вы можете использовать следующую команду:

DROP DATABASE IF EXISTS database_name;

Создать новую учетную запись пользователя MySQL

Учетная запись пользователя в MySQL состоит из частей имени пользователя и имени хоста.

Чтобы создать новую учетную запись пользователя MySQL, выполните следующую команду, просто замените «database_user» на имя пользователя, которого вы хотите создать:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

В приведенной выше команде мы установили для части имени узла значение localhost что означает, что этот пользователь сможет подключаться к серверу MySQL только с локального узла (т. Е. Из системы, в которой работает MySQL Server). Если вы хотите предоставить доступ с другого хоста (ов), просто измените localhost с IP-адресом удаленной машины или используйте подстановочный знак '%' для части хоста, что означает, что учетная запись пользователя сможет подключаться с любого хоста.

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

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Изменить пароль учетной записи пользователя MySQL

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

Вы можете найти версию своего сервера, введя следующую команду:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

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

Query OK, 0 rows affected (0.00 sec)

Список всех учетных записей пользователей MySQL

Вы можете перечислить все учетные записи пользователей MySQL или MariaDB, mysql.users таблицу mysql.users :

SELECT user, host FROM mysql.user;

Вывод должен выглядеть примерно так:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Удалить учетную запись пользователя MySQL

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

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

То же, что и при работе с базами данных, чтобы избежать ошибки, которую вы можете использовать:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Предоставить разрешения учетной записи пользователя MySQL

Существует несколько типов привилегий, которые могут быть предоставлены учетной записи пользователя. Вы можете найти полный список привилегий, поддерживаемых MySQL, здесь. В этом руководстве мы рассмотрим несколько примеров:

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

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

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

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Чтобы объединить все привилегии для учетной записи пользователя над определенной таблицей из базы данных, используйте следующую команду:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Отменить разрешения от учетной записи пользователя MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Отображение привилегий учетной записи пользователя MySQL

Чтобы найти привилегии, предоставленные определенной учетной записи пользователя типа MySQL:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Вывод

Это руководство охватывает только основы, но оно должно быть хорошим началом для тех, кто хочет научиться управлять базами данных и пользователями MySQL из командной строки. Вы также можете проверить учебник о том, как сбросить пароль root для MySQL, если вы его забыли.

Это все! Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Мысль Мариадб