Установка MySQL 5.7 на CentOS 9

Вы ищете руководство, которое поможет вам установить MySQL 5.7 на Linux-сервере или рабочей станции CentOS 9/RHEL 9?

Шаг 1. Добавьте репозиторий MySQL

Отключите репозиторий AppStream MySQL по умолчанию:

sudo dnf remove @mysql
sudo dnf module reset mysql
sudo dnf module disable mysql

Для EL 9 нет репозитория MySQL, поэтому вместо него мы будем использовать репозиторий EL 7. Создайте новый файл репозитория.

sudo mcedit /etc/yum.repos.d/mysql-community.repo
Читать далее «Установка MySQL 5.7 на CentOS 9»

Mysql 5.7 группировка по старому

Многие столкнулись с проблемой, что в версии MySQL 5.7 не возможно использовать привычную группировку GROUP BY и это сильно мешает при переходе старых сайтов на новую базу данных.

Но решение есть, открываем файл my.cfg и добавляем в него следующую строчку:

sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

и перезагружаем базу

systemctl restart mysqld

MySQL: вставить запись, если она не существует в таблице

CREATE TABLE `table_listnames` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL,
  `tele` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;

Вставить запись:

Читать далее «MySQL: вставить запись, если она не существует в таблице»

Репликация в MySQL

Для того, чтобы организовать репликацию между двумя MySQL-серверами необходимо:

На master-сервере

1) Включить binarylog, если он еще не включён и назначить master-серверу идентификатор (server-id). Для этого в my.cnf добавить и перегрузить:

log-bin=/var/db/mysql/srv011-bin.log
server-id = 1

2) Создать пользователя с правами:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY '';
FLUSH PRIVILEGES;
Читать далее «Репликация в MySQL»