Category: Database


Восстановление InnoDB после переноса сервера


Допустим у нас есть сервер на Linux с базой MySQL. И нам понадобилось сделать копию сервера с живого рабочего. Или поднять из бэкапа, который был сделан со снапшота.

Вроде бы проблем быть не должно, но часто при таком переносе ломается InnoDB. Ниже приведу пример, как можно это исправить.

Заходим на сервер через консоль и необходимо сделать выгрузку всех баз. Если MySQL постоянно падает или не поднимается, то в некоторых случаях помогает следуюющее: вписать в конфиг файл /etc/my.cnf строчку в разделе [mysql]

Read More »

Postfixadmin: Invalid query: Unknown column ‘goto’ in ‘alias’


iRedMail v0.9.8

iRedAdmin v0.9.1 (MySQL)

Postfixadmin v3.2

 

При установке posftixadmin на новый iRedmail возникают ошибки

Ниже приведены ошибки и как их лечить.

 

Ошибка:

Invalid query: Unknown column ‘goto’ in ‘alias’

В новой версии отсутствует колонка goto. Добавим её

Надо зайти на сервер по ssh и зайти в базу MySQL используя логин root и пароль из письма пользователю postmaster
mysql -u root -p
use vmail;
ALTER TABLE alias ADD COLUMN `goto` text NOT NULL;
Ошибка:
Invalid query: Duplicate key name ‘domain’
Выполняем там же команду SQL

DROP INDEX domain on mailbox;

DROP INDEX domain on alias;


MySQL настройка кодировки соединения


Допустим у нас есть некий скрипт, который что-то добавляет в базу, что-то берёт из базы и есть отдельный или не обязательно отдельный файл, в котором происходит подключение к базе.

Если база у нас в utf8, а соединение в какой-нибудь другой кодировке, то в базу кириллица запишется в нечитаемой кодировке. Для исправления этого необходимо указать кодировку соединения.

Пример подключения к базе

<?php

//Заполняем данные о подключении
$DB_HOST = ‘localhost’;
$DB_USER = ‘db_user’;
$DB_PASS = ‘password’;
$DB_NAME = ‘name_db’;
//Подключаемся к базе с заданными логином, паролем, сервером базы и именем базы
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
//устанавливаем кодировку соединения
$mysqli->set_charset(“utf8”);

?>