- Sergey Danielyan
- Правильная установка и настройка MySQL в Linux
- Установка MySQL
- Настройка сервера
- Команды MySQL в Linux
- Работа с базами, таблицами — просмотр, удаление, редактирование записей. Консоль
- Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль
- Резервные копии — создание, восстановление бд . Консоль
- Mysql ��� ����� linux
- Установка MySQL в Ubuntu 20.04
- Введение
- Предварительные требования
- Шаг 1 — Установка MySQL
- Шаг 2 — Настройка MySQL
- Шаг 3 — Настройка аутентификации и прав пользователя (опционально)
- Шаг 4 — Тестирование 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 в Linux
Ниже предоставлен список наиболее полезных и часто используемых команд MySQL с примерами.
mysql в начале строки означает, что команда выполняется после входа вMySQL.
Символ # или $ в начале строки означает, что команда выполняется из командной строки.
Что бы проверить статус сервера MYSQL выполните:
для FreeBSD:
в CentOS / RHEL:
Что бы подключиться к серверу MySQL из консоли, если сервер MySQL находится на том же хосте:
Работа с базами, таблицами — просмотр, удаление, редактирование записей. Консоль
Создать базу данных на MySQL сервере:
Показать список всех баз данных на сервере MySQL:
Отобразить все таблицы в базе данных:
Просмотреть формат таблицы в базе:
Удалить таблицу из базы:
Показать все содержимое таблицы:
Отобразить столбцы и содержимое столбцов в выбранной таблице:
Отобразить строки в определенной таблице, содержащие » whatever «:
Отобразить все записи в определенной таблице, содержащие » Bob » и телефонный номер » 3444444 :
Отобразить все записи, НЕ содержащие имя » Bob » и телефонный номер » 3444444 «, отсортированные по полю phone_number :
Показать все записи, начинающиеся с букв » bob » и телефонного номера » 3444444 » в определенной таблице:
Показать все записи, начинающиеся с букв ‘ bob » и телефонного номера » 3444444 «, ограничиваясь записями с 1-ой до 5-ой:
Использование регулярных выражений ( «REGEXP BINARY» ) для поиска записей. Например, для регистро-независимого поиска — найти все записи, начинающиеся с буквы А :
Показать все уникальные записи:
Показать количество строк в таблице:
Подсчитать количество столбцов в таблице:
Добавление колонки в базу данных:
Изменение имени столбца:
Создать столбец с уникальным именем, что бы избежать дубликатов в названиях:
Изменение размера столбца:
Удаление столбца из таблицы:
Загрузка файла CSV в таблицу:
Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль
Создание нового пользователя — подключение к серверу MySQL под root, переключение к базе данных, добавление пользователя, обновление привилегий:
Изменений пользовательского пароля из консоли на удаленном хосте db1.example.org :
Изменение пользовательского пароля из консоли MySQL — подключение под root, обновление пароля, обновление привилегий:
Восстановление/изменение пароля root сервера MySQL — остановка MySQL, запуск без таблиц привилегий, подключение под root, установка нового пароля, выход и перезапуск MySQL.
Set a root password if there is on root password.
Обновление пароля root:
Установка права на подключение к серверу с хоста localhost с паролем » passwd » — подключение подroot, переключение к базе данных, установка привилегий, обновление привилегий:
Установка привилегий пользователю на использование базы данных — подключение под root, переключение к базе данных, установка привилегий, обновление привилегий:
Обновление информации в базе данных:
Удаление строки в таблице:
Обновление привилегий в базе данных:
Резервные копии — создание, восстановление бд . Консоль
Создать резервную копию (dump) всех баз данных в файл alldatabases.sql :
Создать резервную копию одной базы данных в файл databasename.sql :
Создать резервную копию одной таблицы в файл databasename.tablename.sql :
Восстановление базы данных (или таблицы) из резервной копии:
Источник
Mysql ��� ����� linux
Linux supports a number of different solutions for installing MySQL. We recommend that you use one of the distributions from Oracle, for which several methods for installation are available:
Table 2.8 Linux Installation Methods and Information
Type | Setup Method | Additional Information |
---|---|---|
Apt | Enable the MySQL Apt repository | Documentation |
Yum | Enable the MySQL Yum repository | Documentation |
Zypper | Enable the MySQL SLES repository | Documentation |
RPM | Download a specific package | Documentation |
DEB | Download a specific package | Documentation |
Generic | Download a generic package | Documentation |
Source | Compile from source | Documentation |
Docker | Use the Oracle Container Registry. You can also use Docker Hub for MySQL Community Edition and My Oracle Support for MySQL Enterprise Edition. | Documentation |
Oracle Unbreakable Linux Network | Use ULN channels | Documentation |
As an alternative, you can use the package manager on your system to automatically download and install MySQL with packages from the native software repositories of your Linux distribution. These native packages are often several versions behind the currently available release. You are also normally unable to install development milestone releases (DMRs), since these are not usually made available in the native repositories. For more information on using the native package installers, see Section 2.5.7, “Installing MySQL on Linux from the Native Software Repositories”.
Источник
Установка MySQL в Ubuntu 20.04
Published on May 13, 2020
Предыдущая версия настоящего обучающего модуля составлена Хейзел Вирдо
Введение
MySQL — это система управления базами данных с открытым исходным кодом, которая, как правило, устанавливается в составе популярного стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она использует реляционную модель и язык структурированных запросов (SQL) для управления данными.
В этом обучающем руководстве мы рассмотрим, как установить 8-ю версию MySQL на сервер Ubuntu 20.04. В результате вы получите рабочую реляционную базу данных, которую вы сможете использовать для создания следующего сайта или приложения.
Предварительные требования
Для данного обучающего руководства вам потребуется следующее:
- Один сервер Ubuntu 20.04, non-root user с правами администратора и брандмауэр, настроенный с помощью UFW. Чтобы выполнить настройку, воспользуйтесь руководством по первоначальной настройке сервера Ubuntu 20.04.
Шаг 1 — Установка MySQL
На Ubuntu 20.04 вы можете установить MySQL с помощью репозитория пакетов APT. На момент написания этого руководства в репозитории Ubuntu по умолчанию доступна версия MySQL 8.0.19 .
Для установки обновите индекс пакетов на вашем сервере, если еще не сделали этого:
Затем выполните установку пакета mysql-server :
В этом случае установка MySQL будет выполнена без запроса настройки пароля или внесения других изменений в конфигурацию. Поскольку при этом установка MySQL остается уязвимой, мы исправим это в следующем шаге.
Шаг 2 — Настройка MySQL
Для новых установок MySQL необходимо запустить встроенный в СУБД скрипт безопасности. Этот скрипт меняет ряд наименее защищенных опций, используемых по умолчанию, для таких функций, как, например, удаленный вход для пользователя root и тестовые пользователи.
Запустите скрипт безопасности с помощью команды sudo :
При этом откроется серия диалогов, где вы сможете внести некоторые изменения в параметры безопасности установки MySQL. В первом запросе вам предложат определить, хотите ли вы настроить плагин валидации пароля, который вы можете использовать для проверки надежности вашего пароля MySQL.
Если вы решите использовать плагин валидации пароля, скрипт предложит вам выбрать уровень валидации пароля. Самый высокий уровень, который можно установить, указав 2 , требует, чтобы ваш пароль был длиной не менее восьми символов и содержал строчные, заглавные буквы, цифры и специальные символы.
Независимо от того, захотите ли вы выполнить настройку плагина валидации пароля, в следующем запросе вас попросят установить пароль для пользователя root MySQL. Введите и подтвердите безопасный пароль по вашему выбору:
Если вы использовали плагин валидации пароля, то получите информацию о надежности вашего нового пароля. Затем скрипт спросит, хотите ли вы продолжить использовать пароль, который вы только что ввели, или хотите ввести новый пароль. Если вы удовлетворены надежностью пароля, который вы только что ввели, введите Y для продолжения:
Далее вы можете использовать клавиши Y и ENTER , чтобы принять ответы по умолчанию для всех последующих вопросов. Выбрав эти ответы, вы удалите ряд анонимных пользователей и тестовую базу данных, отключите возможность удаленного входа пользователя root и загрузите новые правила, чтобы внесенные изменения немедленно активировались в MySQL.
Обратите внимание, что несмотря на то, что вы установили пароль для root user MySQL, аутентификация с помощью пароля при подключении к оболочке MySQL для этого пользователя не настроена. Если необходимо, вы можете изменить эту настройку в шаге 3.
Шаг 3 — Настройка аутентификации и прав пользователя (опционально)
В системах Ubuntu при запуске MySQL 5.7 (и более поздние версии) для root пользователя MySQL по умолчанию устанавливается аутентификация с помощью плагина auth_socket , а не пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить доступ к пользователю внешней программе (например, phpMyAdmin).
Для использования пароля для подключения к MySQL в качестве root пользователя необходимо изменить метод аутентификации с auth_socket на другой плагин, например caching_sha2_password или mysql_native_password . Для этого откройте командную строку MySQL через терминал:
Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:
В этом примере вы можете видеть, что root пользователь действительно использует метод аутентификации с помощью плагина auth_socket . Для настройки учетной записи root на использование метода аутентификации с помощью пароля запустите команду ALTER USER , чтобы изменить используемый плагин аутентификации и установить новый пароль.
Не забудьте изменить password на более надежный пароль и убедитесь, что эта команда заменит пароль root, заданный на шаге 2:
Примечание. Предыдущее выражение ALTER USER устанавливает аутентификацию root user MySQL с помощью плагина caching_sha2_password . Согласно официальной документации MySQL, caching_sha2_password считается предпочтительным плагином аутентификации MySQL, так как он обеспечивает более защищенное шифрование пароля, чем более старая, но все еще широко используемая версия mysql_native_password .
Однако многие приложения PHP, например phpMyAdmin, работают ненадежно с caching_sha2_password . Если вы планируете использовать эту базу данных с приложением PHP, возможно, вам потребуется установить аутентификацию root с помощью mysql_native_password :
Затем выполните команду FLUSH PRIVILEGES , которая просит сервер перезагрузить предоставленные таблицы и ввести в действие изменения:
Проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что root-пользователь больше не использует для аутентификации плагин auth_socket :
Результаты данного примера показывают, что теперь root user MySQL проходит аутентификацию с помощью caching_sha2_password . Убедившись в этом на своем сервере, вы можете выйти из оболочки MySQL:
В качестве альтернативного варианта кто-то может посчитать, что для его рабочего процесса лучше подходит подключение к MySQL с помощью специально выделенного пользователя. Для создания такого пользователя откройте оболочку MySQL еще раз:
Примечание. Если у вас активирована аутентификация root с помощью пароля, как описано в предыдущих параграфах, вам потребуется использовать другую команду для доступа к оболочке MySQL. Следующая команда будет запускать ваш клиент MySQL с обычными правами пользователя, и вы получите права администратора внутри базы данных только с помощью аутентификации:
Создайте нового пользователя и придумайте для него надежный пароль:
Затем предоставьте вашему новому пользователю соответствующие права. Например, вы можете предоставить пользователю права доступа ко всем таблицам в базе данных, а также можете добавлять, изменять и удалять права пользователя с помощью этой команды:
Обратите внимание, что на данный момент вам не нужно запускать команду FLUSH PRIVILEGES снова. Данная команда нужна только при изменении предоставленных таблиц с применением таких выражений, как INSERT , UPDATE или DELETE . Поскольку вы создали нового пользователя вместо изменения существующего, команда FLUSH PRIVILEGES не требуется.
После этого выйдите из оболочки MySQL:
В заключение проверим установку MySQL.
Шаг 4 — Тестирование MySQL
Независимо от способа установки MySQL должна запускаться автоматически. Чтобы проверить это, проверьте ее статус.
Результат будет выглядеть примерно так:
Если MySQL не запускается, можно активировать ее с помощью команды sudo systemctl start mysql .
В качестве дополнительной проверки вы можете попробовать подключиться к базе данных с помощью инструмента mysqladmin , который позволяет запускать команды администрирования. Например, эта команда позволяет подключиться к MySQL в качестве пользователя root ( -u root ), запросить пароль ( -p ) и обеспечить возврат версии.
Результат должен выглядеть примерно следующим образом:
Это означает, что система MySQL запущена и работает.
Заключение
Теперь на вашем сервере установлена базовая версия MySQL. Ниже представлены несколько примеров следующих возможных шагов:
Источник