Консультация Oblako.kz

Установка MySQL на FreeBSD 11

MySQL — одна из самых заслуженно популярных систем управления базами данных (СУБД). Особенно часто она применяется для хранения данных веб-сайтов различной сложности, так как сочетает в себе простоту установки и первоначальной настройки с высокой функциональностью и неприхотливостью использования. Из-за своей популярности она включена в стандартные репозитории большинства дистрибутивов Linux, а также в систему портов FreeBSD. Разумеется присутствует и версия для OC Windows.

Существует две редакции MYSQL - платная (enterprise) и бесплатная (community). Первая существует также в нескольких вариантах, отличающихся стоимостью и набором поддерживаемых функциональных возможностей. Подробнее об этом рассказывается на официальном сайте MySQL.

В большинстве же случаев обычно хватает бесплатной версии от сообщества (Community) которую можно также скачать с официального сайта MySQL. Там же есть и дополнительные утилиты и коннекторы (драйверы) для MySQL.

В операционных системах семейства FreeBSD также существует пакетный менеджер - система управления пакетами - называющаяся pkg. Она достаточно проста в обращении, благодаря этому, установить Mysql во FreeBSD насколько же просто, как и в других ОС (Windows, Linux).

Для этого необходимо выполнить следующие операции.

Обновить базу данных пакетов командой pkg update для того, чтобы у нас была самая свежая версия пакетов.

root@freebsd11:~ # pkg update
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01
Fetching packagesite.txz: 100%    6 MiB   1.1MB/s    00:06
Processing entries: 100%
FreeBSD repository update completed. 31153 packages processed.
root@freebsd11:~ #

Находим нужный нам пакет командой pkg search mysql. Так как мы устанавливаем серверную часть MySQL - mysql-server то отфильтруем вывод с помощью утилиты grep.

root@freebsd11:~ # pkg search mysql | grep server
geoserver-mysql-plugin-2.12.1  MySQL DataStore implementation for GeoServer
mydns-mysql-1.1.0_7            DNS server designed to utilize the MySQL database
mysql-udf-0.3_2                Set of user-defined functions for the MySQL server
mysql55-server-5.5.60          Multithreaded SQL database (server)
mysql56-server-5.6.40          Multithreaded SQL database (server)
mysql57-server-5.7.22          Multithreaded SQL database (server)
mysql80-server-8.0.2_1         Multithreaded SQL database (server)
mysqld_exporter-0.10.0_1       Prometheus exporter for MySQL server metrics
mysqlwsrep56-server-5.6.39     MySQL database enhanced with Galera replication (server package)
mysqlwsrep57-server-5.7.21     MySQL database enhanced with Galera replication (server package)
root@freebsd11:~ #

Выберем версию MySQL и установим его также командой pkg install <имя пакета>, т.е в нашем случае пишем pkg install mysql57-server-5.7.22

Система проведет подготовительные операции и спросит хотим ли мы установить этот пакет - скажем да (Y).


 pkg install mysql57-server-5.7.22
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        mysql57-server: 5.7.22
        curl: 7.60.0
        libnghttp2: 1.31.1
        protobuf: 3.5.1.1
        mysql57-client: 5.7.22_1
        cyrus-sasl: 2.1.26_13

Number of packages to be installed: 6

The process will require 213 MiB more space.
20 MiB to be downloaded.

Proceed with this action? [y/N]:


 pkg install mysql57-server-5.7.22
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        mysql57-server: 5.7.22
        curl: 7.60.0
        libnghttp2: 1.31.1
        protobuf: 3.5.1.1
        mysql57-client: 5.7.22_1
        cyrus-sasl: 2.1.26_13

Number of packages to be installed: 6

The process will require 213 MiB more space.
20 MiB to be downloaded.

Proceed with this action? [y/N]:

На этом этапе менеджер пакетов сообщит нам какой объем информации ему необходимо скачать из интернета и попросит нашего согласия - также ответим положительно.

New packages to be INSTALLED:
        libnghttp2: 1.31.1
        curl: 7.60.0
        protobuf: 3.5.1.1
        cyrus-sasl: 2.1.26_13
        mysql57-client: 5.7.22_1
        mysql57-server: 5.7.22

Number of packages to be removed: 1
Number of packages to be installed: 6

The process will require 148 MiB more space.

Proceed with this action? [y/N]:

На этом установка завершена. Для того, чтобы СУБД запускалась при старте системы добавляем mysql_enable="YES" к файлу /etc/rc.conf echo 'mysql_enable="YES"' >> /etc/rc.conf

Запускаем MySQL

root@freebsd11:/usr/local # service mysql-server start
Starting mysql.

Проверяем, что он запустился.

service mysql-server status

Если выходит ошибка вида

/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql

То необходимо очистить каталог /var/db/mysql/* и заново проинициализировать MySQL. Для этого введем следующие команды:

rm -rf /var/db/mysql/*

Команда rm удаляет файлы или папки. Ключ -f говорит о том, что команда не должна спрашивать подтверждение данного действия (используйте данный ключ с большой осторожностью, так как в отличие от ОС Windows в системах Linux/Unix корзины нет). Ключ -r означает что необходимо также удалять и вложенные каталоги.

Далее необходимо проинициализировать MySQL.

Для этого запускаем команду mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL server using password in '/root/.mysql_secret'

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: Y

Программа спрашивает, запустить ли плагин проверки валидности пароля (соответствия требованиям безопасности) - включаем, нажав Y, и выбираем правила сложности:

  • low - длина пароля не менее 8 символов
  • medium - тоже что и low, плюс пароль должен содержать цифры, символы разных регистров и специальные символы, такие как $# и т.д.
  • strong - тоже что и medium плюс не должно быть словарных слов.

Выберем вариант medium нажав 1.

There are three levels of password validation policy:

LOW	Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary              	file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

После задания паролей система спрашивает запретить ли доступ анонимных пользователей - скажем да, запретить.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) :

Запретить ли пользователю root логиниться удаленно - обычно да, запрещают по соображениям безопасности, так как у этого пользователя неограниченные права на доступ в СУБД.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

Убрать ли тестовые базы. Скажем, например, нет.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N

Перезагрузить таблицу привилегий - это таблица прав доступа

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

После этого настройка завершена и можно попробовать соединиться с нашей базой данных консольным клиентом командой mysql -u root -p. Если все сделано правильно, то вы успешно войдете в систему.

  • -u ключ, указывающий каким пользователем логиниться. По умолчанию у нас есть только root
  • -p ключ, требующий ввода пароля. После него можно указать сам пароль в текстовом виде, но это небезопасно, и так никто не делает.
root@freebsd11:~ # mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.13-log

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]>

Можно, например, посмотреть список имеющихся БД командой show databases;.

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.7.13-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> show databases;
+------------------------------+
| Database                     |
+------------------------------+
| information_schema    |
| mysql          	                |
| performance_schema |
| sys            	                |
+-----------------------------+
4 rows in set (0.00 sec)

root@localhost [(none)]>

На этом установка MySQL на FreeBSD 11 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Linux, а если вы ищете надежный виртуальный сервер под управлением Linux, обратите внимания на нашу услугу — Аренда виртуального сервера на базе Linux.

 
Последнее обновление: 01.11.2023