Mysql/MariaDB

Материал из First-Leon
Перейти к: навигация, поиск

Установка MariaDB

Из PPA

Стабильная версия 10.2

sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.truenetwork.ru/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update
apt-get dist-upgrade -y
sudo apt install mariadb-server-10.2 mariadb-client-core-10.2 -y

Бэкап всех баз

#!/bin/bash
date >> /var/log/backups
for i in `mysql -pPASS -e'show databases;' | grep -v test | grep -v phpmyadmin |  grep -v information_schema | grep -v mysql | grep -v performance_schema | grep -v Database`; do
    mysqldump -pPASS $i > /backups/$i;
done

Восстановление дампа

mysql -u [user_name] -p[pass] dbname < mysql_dump.sql

Если дамп слишком большой, может понадобится увеличение значения max_allowed_packet (до, например, 64M)

Работа с пользователями

Создать пользователя

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Административные права пользователю

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;

Права на чтение пользователю, на чтение из базы

GRANT ALL PRIVILEGES ON wordpress.* TO 'newuser'@'localhost';

Удалить пользователя

DROP USER 'newuser'@'localhost';

Применить привилегии

FLUSH PRIVILEGES;

Разрешаем пользователю подключаться с любого хоста:

mysql -uroot -p
use mysql;
select host, user from user;
update user set host="%" where user="root" and host="localhost";
flush privileges;

Кодировка по умолчанию

[mysqld]

character-set-server = utf8
collation-server = utf8_unicode_ci

Настройка phpmyadmin для работы с несколькими БД

docker run --name myadmin -d -e PMA_HOSTS=10.210.210.8,10.210.210.10,10.210.210.21,10.210.210.26 -p 80:80 phpmyadmin/phpmyadmin

Сброс пароля root

systemctl stop mysql.service
mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
UPDATE user SET password=PASSWORD("secret") WHERE User='root';
FLUSH PRIVILEGES;
quit;
systemctl stop mysql.service
systemctl start mysql.service

Ссылки: