Инструменты пользователя

Инструменты сайта


freebsd:mysql

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

Установка:

cd /usr/ports/databases/mysql57-server
make install clean
...
...

В конце установки получаю

===> Creating groups.
Creating group 'mysql' with gid '88'.
===> Creating users
Creating user 'mysql' with uid '88'.
Initial password for first time use of MySQL is saved in $HOME/.mysql_secret
ie. when you want to use "mysql -u root -p" first you should see password
in /root/.mysql_secret

MySQL57 has a default %%ETCDIR%%/my.cnf,
remember to replace it wit your own
or set `mysql_optfile="$YOUR_CNF_FILE` in rc.conf.

===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/lib/mysql/plugin/mysqlx.so
/usr/local/lib/mysql/plugin/group_replication.so
/usr/local/libexec/mysqld

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/mysql-server

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
https://www.mysql.com/

Запускаю mysql-server

service mysql-server onestart
Starting mysql.

Проверяю статус mysql-server

service mysql-server onestatus
mysql is running as pid 53015.

Запускаю скрипт mysql_secure_installation Скрипт предназначен для повышения безопасности MySQL сервера. С помощью этого скрипта возможно:

  • задалть пароль для супер пользователя root (с системным root он не имеет ничего общего, это абсолютно два разных пользователя)
  • удалить анонимного пользователя, который создается только для тестовых целей;
  • запретили пользователю root входить удаленно. Теперь он сможет заходить только с localhost;
  • удалили тестовую БД test и доступ к ней;
mysql_secure_installation
mysql_secure_installation: [ERROR] unknown variable 'prompt=\u@\h [\d]>\_'

Securing the MySQL server deployment.

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

VALIDATE PASSWORD PLUGIN можно использовать для проверки паролей
и улучшить безопасность. Проверяет надежность пароля
и позволяет пользователям устанавливать только те пароли, которые
достаточно безопасно. Вы хотите установить плагин VALIDATE PASSWORD?
Press y|Y for Yes, any other key for No: n
Using existing password for root.

Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password:

Re-enter new password:

Estimated strength of the password: 100
Вы хотите продолжить с предоставленным паролем? (Нажмите y | Y для Да, любую другую клавишу для Нет): y
По умолчанию установка MySQL имеет анонимного пользователя,
позволяя кому-либо войти в MySQL без 
учетной запись пользователя, созданной для них. Это предназначено только для
тестирование, и сделано для гладкой установки.
Вы должны удалить их, прежде чем начать использовать.

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

Обычно пользователю root разрешено подключаться только с
«Локально». Это гарантирует, что кто-то не может подобрать
пароль root из сети.

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

По умолчанию MySQL поставляется с базой данных «test», к которой
любой может получить доступ. Это также предназначено только для тестирования,
и должна быть удалена перед началом использования.

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

 - Removing privileges on test database...
Success.

Перезагрузка таблиц привилегий гарантирует, что все изменения
сделанные до сих пор вступит в силу немедленно.

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

All done!

Проверяю подключение к MySQL

mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.27-log Source distribution

Copyright (c) 2000, 2019, 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.
show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

Получаю ошибку. MySQL почему то думает, что у пользователя root нет пароля. Делаю

SET PASSWORD = PASSWORD('//мой пароль//');
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

quit
Bye

Для запуска MySQL при старте в /etc/rc.conf добавляю строку

sysrc mysql_enable="YES"

Настройка UTF8 кодировки по-умолчанию

В файле конфигурации /usr/local/etc/mysql/my.cnf дописываю следующие строки.

[mysqld]
#character-set-server = utf8 **УСТАРЕЛО**
#collation-server = utf8_unicode_ci **УСТАРЕЛО**
character-set-server            =utf8mb4
collation-server                =utf8mb4_unicode_ci

Перезапускаю MySQL

service mysql-server restart

Разрешить доступ с любого хоста ко всем базам на сервере

freebsd/mysql.txt · Последние изменения: 2020/02/01 17:46 — alex