Установка и конфигурация MySQL/MariaDB — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
1. Обновите список пакетов: | 1. Обновите список пакетов: | ||
− | < | + | <pre>sudo apt update</pre> |
2. Установите MariaDB сервер: | 2. Установите MariaDB сервер: | ||
− | < | + | <pre>sudo apt install mariadb-server mariadb-client</pre> |
3. Запустите и включите автозапуск MariaDB: | 3. Запустите и включите автозапуск MariaDB: | ||
− | < | + | <pre>sudo systemctl start mariadb</pre> |
− | < | + | <pre>sudo systemctl enable mariadb</pre> |
=== Для CentOS/RHEL/Fedora === | === Для CentOS/RHEL/Fedora === | ||
1. Установите MariaDB: | 1. Установите MariaDB: | ||
− | < | + | <pre>sudo yum install mariadb-server mariadb</pre> |
# или для новых версий | # или для новых версий | ||
− | < | + | <pre>sudo dnf install mariadb-server mariadb</pre> |
2. Запустите и включите автозапуск: | 2. Запустите и включите автозапуск: | ||
− | < | + | <pre>sudo systemctl start mariadb</pre> |
− | < | + | <pre>sudo systemctl enable mariadb</pre> |
== 3. Первоначальная настройка безопасности == | == 3. Первоначальная настройка безопасности == | ||
1. Запустите скрипт настройки безопасности: | 1. Запустите скрипт настройки безопасности: | ||
− | < | + | <pre>sudo mysql_secure_installation</pre> |
2. Следуйте инструкциям: | 2. Следуйте инструкциям: | ||
Строка 48: | Строка 48: | ||
1. Подключитесь к MariaDB: | 1. Подключитесь к MariaDB: | ||
− | < | + | <pre>sudo mysql -u root -p</pre> |
2. Введите пароль root пользователя. | 2. Введите пароль root пользователя. | ||
Строка 55: | Строка 55: | ||
1. В консоли MariaDB создайте нового пользователя: | 1. В консоли MariaDB создайте нового пользователя: | ||
− | < | + | <pre>CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';</pre> |
2. Предоставьте все привилегии: | 2. Предоставьте все привилегии: | ||
− | < | + | <pre>GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;</pre> |
3. Обновите привилегии: | 3. Обновите привилегии: | ||
− | < | + | <pre>FLUSH PRIVILEGES;</pre> |
4. Выйдите из консоли: | 4. Выйдите из консоли: | ||
− | < | + | <pre>EXIT;</pre> |
== 5. Создание базы данных == | == 5. Создание базы данных == | ||
1. Подключитесь к MariaDB: | 1. Подключитесь к MariaDB: | ||
− | < | + | <pre>mysql -u newuser -p</pre> |
2. Создайте новую базу данных: | 2. Создайте новую базу данных: | ||
− | < | + | <pre>CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;</pre> |
3. Выберите базу данных: | 3. Выберите базу данных: | ||
− | < | + | <pre>USE mydatabase;</pre> |
4. Создайте таблицу: | 4. Создайте таблицу: | ||
− | < | + | <pre>CREATE TABLE users (</pre> |
− | < | + | <pre>id INT AUTO_INCREMENT PRIMARY KEY,</pre> |
− | < | + | <pre>username VARCHAR(50) NOT NULL,</pre> |
− | < | + | <pre>email VARCHAR(100) NOT NULL,</pre> |
− | < | + | <pre>created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP</pre> |
− | < | + | <pre>);</pre> |
== 6. Настройка конфигурации MariaDB == | == 6. Настройка конфигурации MariaDB == | ||
Строка 90: | Строка 90: | ||
1. Отредактируйте файл конфигурации: | 1. Отредактируйте файл конфигурации: | ||
− | < | + | <pre>sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf</pre> |
2. Настройте основные параметры: | 2. Настройте основные параметры: | ||
− | < | + | <pre>[mysqld]</pre> |
− | < | + | <pre>port = 3306</pre> |
− | < | + | <pre>bind-address = 127.0.0.1</pre> |
− | < | + | <pre>max_connections = 100</pre> |
− | < | + | <pre>innodb_buffer_pool_size = 256M</pre> |
− | < | + | <pre>innodb_log_file_size = 64M</pre> |
− | < | + | <pre>query_cache_size = 32M</pre> |
− | < | + | <pre>query_cache_type = 1</pre> |
− | < | + | <pre>local-infile = 0</pre> |
3. Перезапустите MariaDB: | 3. Перезапустите MariaDB: | ||
− | < | + | <pre>sudo systemctl restart mariadb</pre> |
== 7. Настройка удаленного доступа == | == 7. Настройка удаленного доступа == | ||
Строка 111: | Строка 111: | ||
1. Отредактируйте файл конфигурации: | 1. Отредактируйте файл конфигурации: | ||
− | < | + | <pre>sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf</pre> |
2. Измените bind-address: | 2. Измените bind-address: | ||
− | < | + | <pre>bind-address = 0.0.0.0</pre> |
3. Создайте пользователя для удаленного доступа: | 3. Создайте пользователя для удаленного доступа: | ||
− | < | + | <pre>CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';</pre> |
− | < | + | <pre>GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;</pre> |
− | < | + | <pre>FLUSH PRIVILEGES;</pre> |
4. Перезапустите MariaDB: | 4. Перезапустите MariaDB: | ||
− | < | + | <pre>sudo systemctl restart mariadb</pre> |
=== Настройка файрвола === | === Настройка файрвола === | ||
1. Разрешите MySQL трафик: | 1. Разрешите MySQL трафик: | ||
− | < | + | <pre>sudo ufw allow 3306</pre> |
== 8. Резервное копирование и восстановление == | == 8. Резервное копирование и восстановление == | ||
Строка 134: | Строка 134: | ||
1. Создайте резервную копию базы данных: | 1. Создайте резервную копию базы данных: | ||
− | < | + | <pre>mysqldump -u root -p mydatabase > backup.sql</pre> |
2. Создайте резервную копию всех баз данных: | 2. Создайте резервную копию всех баз данных: | ||
− | < | + | <pre>mysqldump -u root -p --all-databases > full_backup.sql</pre> |
=== Восстановление из резервной копии === | === Восстановление из резервной копии === | ||
1. Создайте новую базу данных: | 1. Создайте новую базу данных: | ||
− | < | + | <pre>mysql -u root -p -e "CREATE DATABASE restored_db;"</pre> |
2. Восстановите данные: | 2. Восстановите данные: | ||
− | < | + | <pre>mysql -u root -p restored_db < backup.sql</pre> |
== 9. Мониторинг и оптимизация == | == 9. Мониторинг и оптимизация == | ||
Строка 152: | Строка 152: | ||
1. Подключитесь к MariaDB: | 1. Подключитесь к MariaDB: | ||
− | < | + | <pre>mysql -u root -p</pre> |
2. Просмотрите статус: | 2. Просмотрите статус: | ||
− | < | + | <pre>SHOW STATUS;</pre> |
3. Просмотрите процессы: | 3. Просмотрите процессы: | ||
− | < | + | <pre>SHOW PROCESSLIST;</pre> |
=== Оптимизация производительности === | === Оптимизация производительности === | ||
1. Установите MySQLTuner: | 1. Установите MySQLTuner: | ||
− | < | + | <pre>wget http://mysqltuner.pl/ -O mysqltuner.pl</pre> |
− | < | + | <pre>chmod +x mysqltuner.pl</pre> |
2. Запустите анализ: | 2. Запустите анализ: | ||
− | < | + | <pre>./mysqltuner.pl</pre> |
== 10. Управление MariaDB == | == 10. Управление MariaDB == | ||
Строка 174: | Строка 174: | ||
* '''Запуск MariaDB''': | * '''Запуск MariaDB''': | ||
− | < | + | <pre>sudo systemctl start mariadb</pre> |
* '''Остановка MariaDB''': | * '''Остановка MariaDB''': | ||
− | < | + | <pre>sudo systemctl stop mariadb</pre> |
* '''Перезапуск MariaDB''': | * '''Перезапуск MariaDB''': | ||
− | < | + | <pre>sudo systemctl restart mariadb</pre> |
* '''Проверка статуса''': | * '''Проверка статуса''': | ||
− | < | + | <pre>sudo systemctl status mariadb</pre> |
* '''Проверка подключения''': | * '''Проверка подключения''': | ||
− | < | + | <pre>mysql -u root -p -e "SELECT VERSION();"</pre> |
== 11. Безопасность == | == 11. Безопасность == | ||
Строка 193: | Строка 193: | ||
1. Регулярно обновляйте MariaDB: | 1. Регулярно обновляйте MariaDB: | ||
− | < | + | <pre>sudo apt update && sudo apt upgrade mariadb-server</pre> |
2. Настройте логирование: | 2. Настройте логирование: | ||
− | < | + | <pre>log-error = /var/log/mysql/error.log</pre> |
− | < | + | <pre>slow_query_log = 1</pre> |
− | < | + | <pre>slow_query_log_file = /var/log/mysql/slow.log</pre> |
− | < | + | <pre>long_query_time = 2</pre> |
3. Ограничьте права пользователей: | 3. Ограничьте права пользователей: | ||
− | < | + | <pre>CREATE USER 'readonly'@'localhost' IDENTIFIED BY 'password';</pre> |
− | < | + | <pre>GRANT SELECT ON mydatabase.* TO 'readonly'@'localhost';</pre> |
== 12. Устранение неполадок == | == 12. Устранение неполадок == | ||
Строка 210: | Строка 210: | ||
* '''Логи ошибок''': | * '''Логи ошибок''': | ||
− | < | + | <pre>sudo tail -f /var/log/mysql/error.log</pre> |
* '''Медленные запросы''': | * '''Медленные запросы''': | ||
− | < | + | <pre>sudo tail -f /var/log/mysql/slow.log</pre> |
=== Сброс пароля root === | === Сброс пароля root === | ||
1. Остановите MariaDB: | 1. Остановите MariaDB: | ||
− | < | + | <pre>sudo systemctl stop mariadb</pre> |
2. Запустите в безопасном режиме: | 2. Запустите в безопасном режиме: | ||
− | < | + | <pre>sudo mysqld_safe --skip-grant-tables &</pre> |
3. Подключитесь и сбросьте пароль: | 3. Подключитесь и сбросьте пароль: | ||
− | < | + | <pre>mysql -u root</pre> |
− | < | + | <pre>UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE User='root';</pre> |
− | < | + | <pre>FLUSH PRIVILEGES;</pre> |
− | < | + | <pre>EXIT;</pre> |
4. Перезапустите MariaDB: | 4. Перезапустите MariaDB: | ||
− | < | + | <pre>sudo systemctl restart mariadb</pre> |
== Заключение == | == Заключение == |
Текущая версия на 10:41, 15 октября 2025
Содержание
- 1 Установка и конфигурация MySQL/MariaDB
- 1.1 1. Подготовка системы
- 1.2 2. Установка MariaDB
- 1.3 3. Первоначальная настройка безопасности
- 1.4 4. Подключение к MariaDB
- 1.5 5. Создание базы данных
- 1.6 6. Настройка конфигурации MariaDB
- 1.7 7. Настройка удаленного доступа
- 1.8 8. Резервное копирование и восстановление
- 1.9 9. Мониторинг и оптимизация
- 1.10 10. Управление MariaDB
- 1.11 11. Безопасность
- 1.12 12. Устранение неполадок
- 1.13 Заключение
Установка и конфигурация MySQL/MariaDB
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Обновите систему до последней версии пакетов.
2. Установка MariaDB
Для Ubuntu/Debian
1. Обновите список пакетов:
sudo apt update
2. Установите MariaDB сервер:
sudo apt install mariadb-server mariadb-client
3. Запустите и включите автозапуск MariaDB:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Для CentOS/RHEL/Fedora
1. Установите MariaDB:
sudo yum install mariadb-server mariadb
- или для новых версий
sudo dnf install mariadb-server mariadb
2. Запустите и включите автозапуск:
sudo systemctl start mariadb
sudo systemctl enable mariadb
3. Первоначальная настройка безопасности
1. Запустите скрипт настройки безопасности:
sudo mysql_secure_installation
2. Следуйте инструкциям:
- Установите root пароль (рекомендуется)
- Удалите анонимных пользователей (Y)
- Запретите root вход удаленно (Y)
- Удалите тестовую базу данных (Y)
- Перезагрузите таблицы привилегий (Y)
4. Подключение к MariaDB
Подключение от root
1. Подключитесь к MariaDB:
sudo mysql -u root -p
2. Введите пароль root пользователя.
Создание нового пользователя
1. В консоли MariaDB создайте нового пользователя:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
2. Предоставьте все привилегии:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
3. Обновите привилегии:
FLUSH PRIVILEGES;
4. Выйдите из консоли:
EXIT;
5. Создание базы данных
1. Подключитесь к MariaDB:
mysql -u newuser -p
2. Создайте новую базу данных:
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. Выберите базу данных:
USE mydatabase;
4. Создайте таблицу:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
6. Настройка конфигурации MariaDB
Основные параметры конфигурации
1. Отредактируйте файл конфигурации:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
2. Настройте основные параметры:
[mysqld]
port = 3306
bind-address = 127.0.0.1
max_connections = 100
innodb_buffer_pool_size = 256M
innodb_log_file_size = 64M
query_cache_size = 32M
query_cache_type = 1
local-infile = 0
3. Перезапустите MariaDB:
sudo systemctl restart mariadb
7. Настройка удаленного доступа
Разрешение удаленного подключения
1. Отредактируйте файл конфигурации:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
2. Измените bind-address:
bind-address = 0.0.0.0
3. Создайте пользователя для удаленного доступа:
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
4. Перезапустите MariaDB:
sudo systemctl restart mariadb
Настройка файрвола
1. Разрешите MySQL трафик:
sudo ufw allow 3306
8. Резервное копирование и восстановление
Создание резервной копии
1. Создайте резервную копию базы данных:
mysqldump -u root -p mydatabase > backup.sql
2. Создайте резервную копию всех баз данных:
mysqldump -u root -p --all-databases > full_backup.sql
Восстановление из резервной копии
1. Создайте новую базу данных:
mysql -u root -p -e "CREATE DATABASE restored_db;"
2. Восстановите данные:
mysql -u root -p restored_db < backup.sql
9. Мониторинг и оптимизация
Просмотр статуса
1. Подключитесь к MariaDB:
mysql -u root -p
2. Просмотрите статус:
SHOW STATUS;
3. Просмотрите процессы:
SHOW PROCESSLIST;
Оптимизация производительности
1. Установите MySQLTuner:
wget http://mysqltuner.pl/ -O mysqltuner.pl
chmod +x mysqltuner.pl
2. Запустите анализ:
./mysqltuner.pl
10. Управление MariaDB
Основные команды управления
- Запуск MariaDB:
sudo systemctl start mariadb
- Остановка MariaDB:
sudo systemctl stop mariadb
- Перезапуск MariaDB:
sudo systemctl restart mariadb
- Проверка статуса:
sudo systemctl status mariadb
- Проверка подключения:
mysql -u root -p -e "SELECT VERSION();"
11. Безопасность
Дополнительные настройки безопасности
1. Регулярно обновляйте MariaDB:
sudo apt update && sudo apt upgrade mariadb-server
2. Настройте логирование:
log-error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
3. Ограничьте права пользователей:
CREATE USER 'readonly'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON mydatabase.* TO 'readonly'@'localhost';
12. Устранение неполадок
Просмотр логов
- Логи ошибок:
sudo tail -f /var/log/mysql/error.log
- Медленные запросы:
sudo tail -f /var/log/mysql/slow.log
Сброс пароля root
1. Остановите MariaDB:
sudo systemctl stop mariadb
2. Запустите в безопасном режиме:
sudo mysqld_safe --skip-grant-tables &
3. Подключитесь и сбросьте пароль:
mysql -u root
UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
4. Перезапустите MariaDB:
sudo systemctl restart mariadb
Заключение
MariaDB успешно установлен и настроен! Теперь вы можете создавать базы данных и управлять ими.
Для размещения ваших проектов с базой данных на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных баз данных
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой MariaDB и оптимизацией производительности вашей базы данных!