SCROLL

Посты с тэгом: mysql

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

MySQL, как и большинство других реляционных баз данных, предоставляет нам полезные метаданные о базе данных. В официальной документации MySQL метаданные INFORMATION_SCHEMA называются таблицами.

Недавно разбирался как поднять почтовый сервер на Postfix в связке с Dovecot, для памяти опишу как поднять такой сервер на Debian 10. Все действия ниже будут выполняться от root.

 

Настройка DNS записей

# Добавляем DNS-записи для вашего почтового сервера:

@           MX  10  mail.example.com.
mail        A   192.168.1.10

 

Настройка системы

# Задаем имя системы (mail) в файле (/etc/hostname):

echo mail > /etc/hostname

# Указываем в файле (/etc/hosts) строку содержащую IP-адрес с полным доменным именем (FQDN).

127.0.0.1       localhost
192.168.1.10    mail.example.com mail

[stextbox id=’info’]ИНФОРМАЦИЯ: В приведенном выше примере 192.168.1.10 — это IP-адрес машины, mail — это имя локального хоста, а mail.example.com это полное доменное имя.[/stextbox]

 

Настройка MySQL

Данные о пользователях почтового сервера (адреса электронной почты), доменах и псевдонимах будут хранится в базе данных MySQL.

 

# Устанавливаем MySQL сервер.

apt-get install mariadb-server -y

# Выполняем базовую настройку безопасности MySQL сервера и входим на сервер.

mysql_secure_installation

mariadb

 

# Создаем базу данных для работы почтового сервера, пользователя для работы с базой данных и делегируем права на созданную базу данных.

CREATE DATABASE postfix;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix';
GRANT SELECT ON postfix.* TO 'postfix'@'localhost';
FLUSH PRIVILEGES;

 

# Переключаемся на созданную базу данных, для создания необходимых таблиц.

use postfix;

 

# Создаем таблицу для доменов, которые будут получать почту:

CREATE TABLE `virtual_domains` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
);

# Создаем таблицу для всех адресов электронной почты и паролей:

CREATE TABLE `virtual_users` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `password` varchar(106) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
);

Разберем как установить phpMyAdmin последней версии из исходников в Debian 9 Stretch. Так же рассмотрим как обезопасить доступ к нему.

 

Устанавливаем необходимые пакеты:

apt-get install php php-common php-cli libapache2-mod-php php-gd php-mbstring php-zip php-xml php-curl php-bz2 php-mysql php-common php-tcpdf php-gettext mariadb-server -y

 

Скачиваем последнюю версию phpMyAdmin, распаковываем скачанный архив и перемещаем его в пользовательский каталог:

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip

unzip phpMyAdmin-latest-all-languages.zip
rm phpMyAdmin-latest-all-languages.zip
mv phpMyAdmin-*-all-languages/ /usr/share/phpmyadmin

 

Создадим каталог в котором phpMyAdmin будет хранить свои временные файлы и назначаем права доступа к нему для веб-сервера (www-data):

mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin

 

Создаем базу данных и таблицы конфигурации для phpMyAdmin. Применяем поставляемый вместе с phpMyAdmin скрипт:

mariadb < /usr/share/phpmyadmin/sql/create_tables.sql

Рассмотрим установку стека LAMP (Linux, Apache, MySQL/MariaDB, PHP) на Debian 9 Stretch.

 

Подготовка системы

Обновляем систему до актуального состояния:

apt-get update && sudo apt-get upgrade -y

 

Установка Apache

Устанавливаем веб-сервер Apache, выполняем команду:

apt-get install apache2 apache2-utils

Рассмотрим как подключить Asterisk 13 к MySQL посредством ODBC (Open Database Connectivity) для ведения записей CDR (Call Detail Records) и CEL (Channel Event Logging).

 

До версии Asterisk 13, для хранения CDR и CEL в MySQL использовал драйвер cdr_mysql.so и cel_mysql.so. Начиная с Asterisk 13 эти модули Deprecated (Устарели) и не рекомендованы к использованию. Разработчики рекомендуют использовать технологию ODBC.

 

Исходные данные:

  • Debian 8 Jessie
  • Asterisk 13 (13.22.0) — развернутый по данной статье
  • MySQL (5.5.60)

По-умолчанию кодировка в MySQL (5.5) сервере, установлена latin1, рассмотрим как ее изменить на utf-8. Данная инструкция применима ко всем разновидностям Linux, но выполнятся настройка будет на Debian 8 Jessie.

Однажды столкнувшись с случайным удалением задачи в Redmine, и не возможностью ее восстановления какими либо штатными средствами, пришлось проработать шаги восстановления удаленной задачи из резервной копии базы данных MySQL (Надеюсь все делают резервные копии !?).

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

Рассмотрим как сбросить забытый/утерянный пароль от root в MySQL. Рассмотрим варианты сброса пароля под Windows и Unix системах.