MariaDB - работа из консоли

Материал из My WiKi
Перейти к навигации Перейти к поиску

Не всегда под рукой имеется PhpMyAdmin, который удобен в работе а произвести необходимые работы с базами необходимо

Просмотр из консоли баз

Подключение к серверу баз

 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_sevo          |
 +--------------------+
 4 rows in set (0.01 sec)

Просмотр базы с выводом параметров

 MariaDB [(none)]> SHOW CREATE DATABASE `wiki`;
 
 +----------+---------------------------------------------------------------+
 | Database | Create Database                                               |
 +----------+---------------------------------------------------------------+
 | wiki     | CREATE DATABASE `wiki` /*!40100 DEFAULT CHARACTER SET utf8 */ |
 +----------+---------------------------------------------------------------+
 1 row in set (0.00 sec)

Подключение к необходимой базе

 MariаDB [(none)]> USE wiki;
 
 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]>

Просмотр всех таблиц из базы

 MariаDB [wiki-sevo44]> SHOW tables;
 
 +--------------------+
 | Tables_in_wiki     |
 +--------------------+
 | 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)

Добавление базы

Note.png Для работы с базой необходимо после создания добавить пользователя к этой базе и назначить права

Добавление базы с параметрами

 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

Note.png В случае необходимости подключатся к базе с других компьютеров необходимо создать пользователя с нужным параметром и дать права на доступ в настройках сервера MariaDB!

Права на доступ к серверу баз данных делается в двух местах:

  • параметр bind-address = 0.0.0.0 в конфигурационном файле самого сервера баз MariaDB разрешающий подключатся с любого адреса (или укажите конкретный IP)
  • права пользователя

Менять права пользователя root не желательно, но можно создать пользователя и дать ему полные права. Держать ещё одного пользователя с полными правами не разумно, но иногда необходимо. Добавляется пользователь с полными правами командой:

 MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* to 'имя пользователя'@'%';

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

 # Команда смены прав доступа пользователя на подключение с любого адреса (параметр %)
 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
 
 # Применение изменений
 MariaDB [(none)]> FLUSH PRIVILEGES;
 Query OK, 0 rows affected (0.00 sec)

Добавление пользователя

 # Права на доступ только с 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)

Выход с сервера

Выход производиться командой

 MariаDB [(none)]> exit
 
 Bye

Резервное копирование и востановление баз

Создадим необходимую папку для бэкапов и перейдем в неё

 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 для CentOS 7.