Основные моменты работы с базами данных MariaDB из консоли. Не всегда под рукой имеется PhpMyAdmin, который удобен в работе а произвести необходимые работы с базами необходимо. Будьте внимательность при работе в консоли!
Содержание:
Введение
В статье вы узнаете как можно работать с базами данных MariaDB из консоли.
О том как производить оптимизацию после установки можно из статьи MariaDB оптимизация и установка.
Просмотр из консоли баз MariaDB
Подключение к серверу баз
mysql -u root -p = вывод команды = Enter password: указываем пароль root Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 100985 Server version: 5.5.50-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Вывод списка имеющихся баз
MariaDB [(none)]> SHOW DATABASES;
= вывод команды =
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wiki_sevo44 |
+--------------------+
4 rows in set (0.01 sec)
Просмотр базы с выводом параметров
MariaDB [(none)]> SHOW CREATE DATABASE `wiki_sevo44`;
= вывод команды =
+-----------+--------------------------------------------------------------------+
| Database | Create Database |
+-----------+--------------------------------------------------------------------+
| wiki_sevo44 | CREATE DATABASE `wiki_sevo44` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)
Подключение к необходимой базе
MariаDB [(none)]> USE wiki_sevo44;
= вывод команды =
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariаDB [wiki-sevo44]>
Просмотр всех таблиц из базы
MariаDB [wiki-sevo44]> SHOW tables;
= вывод команды =
+-----------------------+
| Tables_in_wiki_sevo44 |
+-----------------------+
| l10n_cache |
| langlinks |
| log_search |
| logging |
| module_deps |
| objectcache |
| user_former_groups |
| user_groups |
| user_newtalk |
| user_properties |
| valid_tag |
| watchlist |
+-----------------------+
12 rows in set (0.00 sec)
Просмотр содержания нужной таблицы
MariаDB [wiki-sevo44]> SELECT * FROM page;
= вывод команды =
+---------+----------------+-------------------------------------+-------------------+------------------+-------------+----------------+----------------+--------------------+-------------+----------+--------------------+-----------+
| page_id | page_namespace | page_title | page_restrictions | page_is_redirect | page_is_new | page_random | page_touched | page_links_updated | page_latest | page_len | page_content_model | page_lang |
+---------+----------------+-------------------------------------+-------------------+------------------+-------------+----------------+----------------+--------------------+-------------+----------+--------------------+-----------+
| 1 | 0 | Заглавная_страница | | 0 | 1 | 0.6843282599 | 20170826182609 | NULL | 1 | 1035 | wikitext | NULL |
| 2 | 0 | Тестовая 3 | | 0 | 1 | 0.485584249082 | 20170830191050 | 20170830191052 | 2 | 20 | wikitext | NULL |
| 3 | 0 | Тестовая | | 0 | 1 | 0.027751067675 | 20170831130200 | 20170831130201 | 3 | 19 | wikitext | NULL |
| 4 | 0 | Тестовая 2 | | 0 | 0 | 0.213026978763 | 20170831131024 | 20170831131025 | 6 | 1120 | wikitext | NULL |
+---------+----------------+-------------------------------------+-------------------+------------------+-------------+----------------+----------------+--------------------+-------------+----------+--------------------+-----------+
4 rows in set (0.00 sec)
Добавление базы в MariaDB
Для работы с базой необходимо после создания добавить пользователя к этой базе и назначить права.
Добавление базы с параметрами
MariаDB [(none)]> CREATE DATABASE `base` CHARACTER SET utf8 COLLATE utf8_general_ci; = вывод команды = Query OK, 1 row affected (0.00 sec)
Удаление базы
MariaDB [(none)]> DROP DATABASE `base`;
= вывод команды =
Query OK, 0 rows affected (0.01 sec)
Просмотр пользователей с выводом их прав
MariaDB [(none)]> SELECT User,Host FROM mysql.user;
= вывод команды =
+--------+-----------+
| User | Host |
+--------+-----------+
| root | localhost |
| mysql | localhost |
+--------+-----------+
2 rows in set (0.005 sec)
Права пользователя баз данных MariaDB
В случае необходимости подключатся к базе с других компьютеров необходимо создать пользователя с нужным параметром и дать права на доступ в настройках сервера MariaDB!
Права на доступ к серверу баз данных делается в двух местах:
- Параметр bind-address=0.0.0.0 в конфигурационном файле самого сервера баз MariaDB разрешающий подключатся с любого адреса (или укажите конкретный IP) в разделе [mysqld] ;
- Права пользователя на возможность удаленного подключения к базе данных.
Для работы с базами мне удобно использовать PhpMyAdmin и эта программа позволяет настроить доступ к базам работающих на разных серверах.
Менять права пользователя root не желательно, но можно создать пользователя и дать ему полные права. Держать ещё одного пользователя с полными правами не разумно, но иногда необходимо. Добавляются пользователю полные права командой:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* to 'имя пользователя'@'%';
После добавления пользователя с полными правами и имеющегося PhpMyAdmin настроенного для подключения к другим серверам баз данных, можно зайти и создать все необходимые базы и пользователей.
Например, ниже представлена полная версия команд после выполнения которых будет создан пользователь sevo44 с полными правами:
mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8 Server version: 10.4.8-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> CREATE USER `sevo44`@`%` IDENTIFIED BY 'ПАРОЛЬ'; Query OK, 0 rows affected (0.008 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* to 'sevo44'@'%'; Query OK, 0 rows affected (0.017 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> exit Bye
Для безопасности я никогда не создаю пользователя с полными правами который может подключатся с удаленных мест. Для каждой базы свой пользователь!
В случае если надо поменять права имеющемуся пользователю это делается следующей командой, после подключения к серверу баз данных:
# Команда смены прав доступа пользователя на подключение с любого адреса (параметр %) MariaDB [(none)]> UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='имя_пользователя'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 # Команда смены прав доступа на базы MariaDB [(none)]> UPDATE mysql.db SET Host='%' WHERE Host='localhost' AND User='имя_пользователя'; Query OK, 0 rows affected (0.03 sec) Rows matched: 0 Changed: 0 Warnings: 0
Добавление пользователя
# Права на доступ только с localhost MariаDB [(none)]> CREATE USER `base_user`@localhost IDENTIFIED BY 'ПАРОЛЬ'; # Права на доступ с любого адреса (при использовании знаков в названиях код заключается в кавычки! MariаDB [(none)]> CREATE USER `base_user`@`%` IDENTIFIED BY 'ПАРОЛЬ'; # Права на доступ с адреса 10.10.0.2 (при использовании знаков в названиях код заключается в кавычки! MariаDB [(none)]> CREATE USER `base_user`@`10.10.0.2` IDENTIFIED BY 'ПАРОЛЬ'; = правильный вывод команды для любой команды = Query OK, 0 rows affected (0.10 sec)
Назначение пользователя базе
# При назначении прав выставляем пользователя с нужными правами!
MariaDB [(none)]> GRANT ALL PRIVILEGES ON base.* to base_user@localhost;
= вывод команды =
Query OK, 0 rows affected (0.04 sec)
После всех манипуляция с базами необходимо обновить права доступа
MariаDB [(none)]> FLUSH PRIVILEGES;
= вывод команды =
Query OK, 0 rows affected (0.02 sec)
Выход с сервера MariaDB
Выход производиться командой
MariаDB [(none)]> exit
= вывод команды =
Bye
Резервное копирование и восстановление баз MariaDB
Создадим необходимую папку для бэкапов и перейдем в неё
mkdir backup cd backup
Создание резервной копию базы с указанием даты создания
mysqldump -u base_user -p base > base-dump_10092017.sql = вывод команды = Enter password: вводим пароль пользователя базы и жмем Enter
Восстановление резервной копии базы
mysql -u base_user -p base < base-dump_10092017.sql = вывод команды = Enter password: вводим пароль пользователя базы и жмем Enter
Вывод
В консоли без проблем можно делать все основные манипуляции с базой данных. Для более удобной работы удобней использовать PhpMyAdmin, установку и настройку которой я рассмотрел в своей статье PhpMyAdmin на Nginx.