- Sergey Danielyan
- Правильная установка и настройка MySQL в Linux
- Установка MySQL
- Настройка сервера
- Установка MySQL в Ubuntu 20.04
- Установка MySQL 8 в Ubuntu
- Установка MySQL 5.7 в Ubuntu
- Настройка mysql в Ubuntu
- Удаление MySQL в Ubuntu
- Выводы
- Установка и первоначальная настройка MySQL в linux
- Установка MySQL из репозитория
- Установка сервера MySQL из репозитория
- Установка клиента MySQL из репозитория
- Установка библиотек MySQL для поддержки компиляции (MySQL development) из репозитория
- Первоначальная настройка MySQL
- Задать пароль MySQL root
- Настройка MySQL для работы в производственной среде
- Создать необходимую базу данных и пользователя для нее
Sergey Danielyan
Правильная установка и настройка MySQL в Linux
Эта статья, по замыслу, должна служить пошаговым руководством по корректной настройки MySQL сервера в Linux в общем и в CentOS в частности, начиная от подготовки системы и заканчивая настройкой прав пользователей.
В этот раз текста будет минимум — только команды.
Установка MySQL
Проверяем, установлен ли MySQL сервер
Если установлен, шаги по установке можете пропустить, хотя ознакомиться я все же советую с ними.
Существуют следующие основные пакеты связанные с mysql:
- mysql — клиент mysql
- mysql-server — сервер mysql
- mysql-devel — для разработки и подключения библиотек и хидеров mysql
- mysql-connector-java — JDBC коннектор (используется, например, в EJBCA)
sudo yum install mysql mysql-server mysql-devel mysql-connector-java
Теперь надо установить сервер mysql на запуск в определенные runlevel‘ы (2, 3 и 5):
Если кто забыл соответствие цифрового значения runlevel‘а символьному:
Стартуем демон mysql:
Настройка сервера
Теперь пора настроить сервер. Начнем с пользователей.
Вот состояние таблицы user до начала действий с ней:
mysql -u root
> use mysql
> select host,user from user;
5 rows in set (0.00 sec)
> quit
Как видете, безопасность на уровне плинтуса. Хорошо хоть, что анонимного пользователя нет.
Для настройки базовых вещей в сервере, запустим настройку сервера через mysql_secure_installation. На время этой установки, пароль будет security. Ваш же пароль, как понимаете, должен отличаться.
Запустится скрипт, с запросами на то или иное действие. Вот ответы:
Skip root password for root
Мы еще не устанавливали пароль для root, поэтому при запуске скрипта и запросе пароля для root , просто нажмите Enter .
Install new password for root: security
А вот тут можно установить пароль для root
Do remove an anonymous user
На вопрос о том, удалить ли анонимного пользователя, отвечаем да
Do not disallow remote connections
Не запрещаем коннект к нашему северу с удаленных серверов (если, конечно, эта опция вам нужна, в другом случае, запретите ее)
Do remove a test database
Тестовая база нам не нужна — удаляйте ее
Do reload the privileges
Перегрузим привилегии для их активации
Теперь для всех root пользователей установлен пароль.
Если в ходе этой конфигурации вы не установили пароль для root , можете сделать это так:
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’localhost.localdomain’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘security’);
UPDATE mysql.user SET Password = PASSWORD(‘security’) WHERE user = ‘root’;
Если же вы не запускали конфигурацию через mysql_secure_installation или не хотите этого делать по каким-то другим причинам, следующие команды удалят any пользователей:
DROP USER »@’localhost’;
DROP USER »@’localhost.localdomain’;
Также, пароль для IPv6 localhost (@::1) можно установить таким образом:
Близится финал нашего действия. Осталось две вещи:
- открыть порты для mysql:
sudo iptables -I INPUT -p tcp —dport 3306 -m state —state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I OUTPUT -p tcp —sport 3306 -m state —state ESTABLISHED -j ACCEPT
выставить кодировку UTF-8 по-умолчанию — файл /etc/my.cnf :
[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’
character-set-server = utf8
collation-server = utf8_unicode_ci
[client]
default-character-set = utf8
Источник
Установка MySQL в Ubuntu 20.04
MySQL — это одна из самых популярных систем управления базами данных, которая применяется почти везде, начиная от различных предприятий и промышленности и заканчивая организацией работы веб-сайтов.
Сейчас существует несколько версий MySQL. Непосредственно MySQL, разрабатываемая компанией Oracle и свободный форк от основного разработчика MySQL — MariaDB. Имя MairaDB программа получила в честь первой дочери программиста, также как и MySQL в честь имени второй. В большинстве дистрибутивов Linux используется MariaDB, в том числе и в Ubuntu. Но в этой статье давайте рассмотрим установку именно MySQL в Ubuntu 20.04.
Установка MySQL 8 в Ubuntu
Программа и все необходимые компоненты есть в официальных репозиториях, поэтому установить её не составит труда. Для установки из официальных репозиториев сначала обновите списки пакетов:
sudo apt update
Затем установите необходимые пакеты:
sudo apt install mysql-server mysql-client
На данный момент в репозиториях Ubuntu 20.04 есть уже версия Mysql 8.20. Вы можете проверить установленную версию такой командой:
Кроме того, желательно проверить, запущенна ли служба MySQL:
sudo systemctl status mysql
Вы должны увидеть зеленую надпись Active, Running и версию программы, которую устанавливали.
Установка MySQL 5.7 в Ubuntu
Если вам нужна версия 5.7, то её в репозиториях нет, но вы можете получить эту версию из репозитория разработчика. Если в системе уже есть более новая версия, её надо полностью удалить:
sudo apt remove —autoremove mysql-server mysql-client
Также удалите каталог с базами данных MySQL они не совместимы со старой версией:
sudo rm -Rf /var/lib/mysql
Для установки репозитория скачайте этот пакет:
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
Затем установите его:
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
В процессе установки программа попросит выбрать дистрибутив. Если у вас Ubuntu 20.04 или выше, выбирайте версию для Ubuntu 18.04 — bionic:
Затем выберите MySQL Server and Cluster:
После этого останется выбрать нужную версию MySQL, например 5.7:
После этого обновите списки репозиториев и посмотрите какие версии MySQL доступны:
sudo apt update
sudo apt-cache policy mysql-server
Осталось установить установить mysql 5.7 в Ubuntu:
sudo apt install mysql-server=5.7.31-1ubuntu18.04 mysql-community-server=5.7.31-1ubuntu18.04 mysql-client=5.7.31-1ubuntu18.04
В процессе установки программа запросит пароль для root пользователя:
После этого вы снова можете посмотреть версию:
Настройка mysql в Ubuntu
Перед тем как вы сможете полноценно использовать только что установленную базу данных, необходимо выполнить ее первоначальную настройку. Для этого был разработан специальный скрипт, выполните его:
На первом шаге настраивается плагин валидации пароля. Чтобы его включить нажмите Y, или его можно не включать. Затем надо задать сложность пароля, который позволит установить этот плагин. Здесь 0 означает слабый пароль, а 2 — сложный. Когда плагин будет настроен введите пароль root и подтвердите, что хотите использовать именно его:
Введите Y для отключения анонимного доступа к MySQL, затем ещё раз Y чтобы запретить подключаться к базе от имени root удаленно:
Снова Y, чтобы удалить тестовую базу данных. Затем, обновите привилегии для пользователей:
После завершения настройки вы можете подключиться к пользователя root к серверу баз данных из командной строки:
sudo mysql -u root
Здесь нам необходимо создать пользователя, от имени которого мы будем использовать базу данных, а также саму базу данных. Для этого воспользуемся командами SQL. Сначала создаем базу данных:
mysql> CREATE DATABASE testDB;
Далее создадим пользователя:
mysql> CREATE USER ‘my_user’@’localhost’ IDENTIFIED BY ‘password’;
Слова my_user и password нужно заменить на свои имя пользователя и пароль. Дальше нужно дать права пользователю на управление этой базой данных:
mysql> GRANT ALL PRIVILEGES ON testDB.* TO ‘my_user’@’localhost’
Или вы можете дать права только на несколько инструкций:
mysql> GRANT SELECT,UPDATE,DELETE ON testDB.* TO ‘my_user’@’localhost’;
Если какую-либо инструкцию нужно запретить, удалите ее:
mysql> REVOKE UPDATE ON testDB.* FROM ‘my_user’@’localhost’;
После завершения работы с правами нужно их обновить:
mysql> FLUSH PRIVILEGES;
Чтобы убедиться что нет никого лишнего, вы можете вывести список пользователей:
mysql> SELECT user,host FROM mysql.user;
Также вы можете посмотреть полномочия для нужного пользователя:
mysql> SHOW GRANTS FOR ‘my_user’@’localhost’;
Теперь установка MySQL Ubuntu 20.04 полностью завершена и вы можете использовать эту базу данных для решения своих задач.
Удаление MySQL в Ubuntu
Чтобы удалить mysql Ubuntu 20.04 понадобиться немного больше команд чем для удаления простого пакета. После удаления основных пакетов в системе остается еще много файлов. Мы рассмотрим как удалить все.
Сначала остановите сервисы:
sudo systemctl stop mysql
sudo killall -KILL mysql mysqld_safe mysqld
Удалите основные пакеты и их зависимости:
sudo apt -y purge mysql-server mysql-client
sudo apt -y autoremove —purge
sudo apt autoclean
Удалите пользователя mysql и остатки программы в системе:
deluser —remove-home mysql
sudo delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb
Удалите все логи подключений к mysql из терминала:
sudo find / -name .mysql_history -delete
Теперь ваша система полностью очищена от MySQL.
Выводы
В этой статье мы рассмотрели как выполняется установка MySQL в Ubuntu 20.04. Как видите, это не очень трудно, хотя и требует некоторых знаний и немного времени на то, чтобы со всем разобраться. Надеюсь, эта информация была для вас полезной.
Источник
Установка и первоначальная настройка MySQL в linux
Установка MySQL из репозитория
Установка сервера MySQL из репозитория
Для установки сервера MySQL в Debian достаточно набрать команду:
apt-get install mysql-server
В операционной системе RHEL / CentOS также все довольно просто:
yum install mysql-server
При этом будет установлена актуальная (на момент выполнения команды) версия MySQL. На момент написания статьи это версия 5.5.
Обратите внимание: после установки сервера MySQL его необходимо запустить. Для этого (как в Debian, так и в RHEL / CentOS) необходимо выполнить команду:
service mysqld start
Кроме того, рекомендуем перезагрузить сервер и убедиться, что MySQL запускается при загрузке. Если не запускается, то в CentOS выполните команду:
chkconfig mysqld on
Установка клиента MySQL из репозитория
Для установки клиента mysql запустите в debian следующую команду:
apt-get install mysql-client
В случае, если у Вас установлен RHEL / CentOS, выполните такую команду:
yum install mysql
При этом будет установлена актуальная (на момент выполнения команды) версия MySQL. На момент написания статьи это версия 5.5.
Установка библиотек MySQL для поддержки компиляции (MySQL development) из репозитория
Если Вы устанавливаете MySQL не по своему желанию, а потому, что это необходимо для установки какой-либо программы (например, asterisk, поддержка cdr_mysql), то просто установить сервер (и/или клиент) MySQL недостаточно. Необходимо также поставить библиотеки MySQL, чтобы компиляция зависящей от MySQL программы была успешной.
Для debian это будет команда:
apt-get install libmysqlclient-dev
Для RHEL / CentOS выполните:
yum install mysql-devel
Первоначальная настройка MySQL
Даже в случае, если Вы устанавливаете MySQL на домашнем/тестовом компьютере (не говоря уже об установке в производственной среде) необходимо совершить хотя бы минимальные действия по настройке MySQL сервера (клиента, как правило, настраивать не нужно). Например, задать пароль пользователя root в системе MySQL. По умолчанию пароль для root — пустой (без пароля).
Задать пароль MySQL root
Для простой установки пароля пользователю root (в случае, если пароль не был запрошен при установке самого MySQL) выполните команду:
/usr/bin/mysqladmin -u root password ‘rootpass’
Где rootpass — пароль для пользователя root. Совет: если Вы хотите, чтобы эта команда не отображалась в истории команд (и никто впоследствии не смог бы подсмотреть пароль рута из истории команд), перед этой командой просто поставьте пробел. То есть:
/usr/bin/mysqladmin -u root password ‘rootpass’
Настройка MySQL для работы в производственной среде
Выполните из командной строки:
/usr/bin/mysql_secure_installation
Данный скрипт (если ответить на задаваемые вопросы yes) — установит новый пароль root (пароль будет запрошен), удалит пользователя anonymous, запретит логинится с удаленных машин под root-ом, удалит тестовую базу.
Создать необходимую базу данных и пользователя для нее
Для создания базы данных в MySQL необходимо сначала подключиться к MySQL, после чего выполнить mysql запрос для создания базы данных. Для этого выполните из командной строки linux:
mysql -u root -p
При этом будет запрошен пароль для пользователя, имя которого указано после опции -u (в данном случае — пароль пользователя root). При правильном введении пароля появится приглашение MySQL к вводу команд:
mysql>_
Это командная строка MySQL. Все SQL запросы и команды на создание баз данных, пользователей и т.д. вводятся в этой командной строке.
Для создания базы данных выполните в командной строке MySQL:
create database имя-базы-данных character set кодировка-базы-данных ;
например:
create database asterisk character set utf8;
Кодировку можно не указывать, при этом будет использоваться кодировка по умолчанию (см. настройки сервера MySQL):
create database mydatabase;
Теперь создадим пользователя MySQL и дадим ему полные права на созданную базу данных:
grant all privileges on имя-базы-данных .* to имя-пользователя @localhost identified by ‘ пароль-пользователя ‘;
например:
grant all privileges on asterisk.* to asterisk_user@localhost identified by ‘asterisk_password’;
Источник