Работа с MariaDB

Работа с MariaDB

Шпаргалка по работе с #MariaDB.

Пользователи

  • Посмотреть список пользователей:
1
echo 'select user, host, password from mysql.user;' | mariadb --user='root' --password
  • Создать пользователя DB_USER с паролем DB_PASSWORD:
1
echo "create user 'DB_USER'@'127.0.0.1' identified by 'DB_PASSWORD';" | mariadb --user='root' --password
  • Переименовать пользователя DB_USER@127.0.0.1 в DB_USER@localhost:
1
echo "rename user 'DB_USER'@'127.0.0.1' to 'DB_USER'@'localhost';" | mariadb --user='root' --password
  • Изменить пароль пользователя DB_USER на DB_PASSWORD_NEW:
1
echo "alter user 'DB_USER'@'127.0.0.1' identified by 'DB_PASSWORD_NEW';" | mariadb --user='root' --password
  • Удалить пользователя DB_USER:
1
echo "drop user 'DB_USER'@'127.0.0.1';" | mariadb --user='root' --password
  • Дать права CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES и RELOAD на базу данных DB_NAME пользователю DB_USER:
1
echo "grant create, alter, drop, insert, update, delete, select, references, reload on DB_NAME.* to 'DB_USER'@'127.0.0.1'; flush privileges;" | mariadb --user='root' --password
  • Дать все права на базу данных DB_NAME пользователю DB_USER:
1
echo "grant all on DB_NAME.* to 'DB_USER'@'127.0.01'; flush privileges;" | mariadb --user='root' --password
  • Дать все права на все базы данных пользователю DB_USER:
1
echo "grant all on *.* to 'DB_USER'@'127.0.01'; flush privileges;" | mariadb --user='root' --password
  • Отозвать все права пользователя DB_USER у базы данных DB_NAME:
1
echo "revoke all on DB_NAME from 'DB_USER'@'127.0.0.1';" | mariadb --user='root' --password
  • Показать права пользователя DB_USER:
1
echo "show grants for 'DB_USER'@'127.0.0.1';" | mariadb --user='root' --password

Базы данных

  • Посмотреть список баз данных:
1
echo 'show databases;' | mariadb --user='root' --password
  • Посмотреть список таблиц в базе данных DB_NAME:
1
echo 'show full tables from DB_NAME;' | mariadb --user='root' --password
  • Создать базу данных DB_NAME с кодировкой utf8mb4 и сопоставлением utf8mb4_unicode_ci:
1
echo "create database if not exists DB_NAME character set 'utf8mb4' collate 'utf8mb4_unicode_ci';" | mariadb --user='root' --password
  • Изменить кодировку и сопоставление базы данных на utf8mb4 и utf8mb4_unicode_ci соответственно:
1
echo "alter database DB_NAME character set 'utf8mb4' collate 'utf8mb4_unicode_ci';" | mariadb --user='root' --password
  • Удалить базу данных DB_NAME:
1
echo 'drop database if exists DB_NAME;' | mariadb --user='root' --password

Экспорт

  • Экспортировать базу данных DB_NAME и записать в файл backup.sql.xz:
1
f='backup.sql'; mariadb-dump --user='root' --password --single-transaction --databases 'DB_NAME' --result-file="${f}" && xz "${f}" && rm -f "${f}"

Импорт

  • Удалить старую базу данных DB_NAME:
1
echo 'drop database if exists DB_NAME;' | mariadb --user='root' --password
  • Создать базу данных DB_NAME с кодировкой utf8mb4 и сопоставлением utf8mb4_unicode_ci:
1
echo "create database if not exists DB_NAME character set 'utf8mb4' collate 'utf8mb4_unicode_ci';" | mariadb --user='root' --password
  • Дать все права на базу данных DB_NAME пользователю DB_USER:
1
echo "grant all privileges on DB_NAME.* to 'DB_USER'@'127.0.01'; flush privileges;" | mariadb --user='root' --password
  • Импортировать данные в новую базу данных DB_NAME из файла backup.sql.xz:
1
f='backup.sql'; xz -d "${f}.xz" && mariadb --user='root' --password --database='DB_NAME' < "${f}"