Как найти mysql на linux

MySQL is a fast, multi-threaded, multi-user, and robust SQL database server. It is intended for mission-critical, heavy-load production systems and mass-deployed software.

Installation

To install MySQL, run the following command from a terminal prompt:

sudo apt install mysql-server

Once the installation is complete, the MySQL server should be started automatically. You can quickly check its current status via systemd:

sudo service mysql status

Which should provide an output like the following:

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-08 14:37:38 PDT; 2 weeks 5 days ago
 Main PID: 2028 (mysqld)
    Tasks: 28 (limit: 4915)
   CGroup: /system.slice/mysql.service
           └─2028 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
 Oct 08 14:37:36 db.example.org systemd[1]: Starting MySQL Community Server...
Oct 08 14:37:38 db.example.org systemd[1]: Started MySQL Community Server.

The network status of the MySQL service can also be checked by running the ss command at the terminal prompt:

sudo ss -tap | grep mysql

When you run this command, you should see something similar to the following:

LISTEN    0         151              127.0.0.1:mysql             0.0.0.0:*       users:(("mysqld",pid=149190,fd=29))
LISTEN    0         70                       *:33060                   *:*       users:(("mysqld",pid=149190,fd=32))

If the server is not running correctly, you can type the following command to start it:

sudo service mysql restart

A good starting point for troubleshooting problems is the systemd journal, which can be accessed from the terminal prompt with this command:

sudo journalctl -u mysql

Configuration

You can edit the files in /etc/mysql/ to configure the basic settings – log file, port number, etc. For example, to configure MySQL to listen for connections from network hosts, in the file /etc/mysql/mysql.conf.d/mysqld.cnf, change the bind-address directive to the server’s IP address:

bind-address            = 192.168.0.5

Note:
Replace 192.168.0.5 with the appropriate address, which can be determined via the ip address show command.

After making a configuration change, the MySQL daemon will need to be restarted with the following command:

sudo systemctl restart mysql.service

Database engines

Whilst the default configuration of MySQL provided by the Ubuntu packages is perfectly functional and performs well there are things you may wish to consider before you proceed.

MySQL is designed to allow data to be stored in different ways. These methods are referred to as either database or storage engines. There are two main storage engines that you’ll be interested in: InnoDB and MyISAM. Storage engines are transparent to the end user. MySQL will handle things differently under the surface, but regardless of which storage engine is in use, you will interact with the database in the same way.

Each engine has its own advantages and disadvantages.

While it is possible (and may be advantageous) to mix and match database engines on a table level, doing so reduces the effectiveness of the performance tuning you can do as you’ll be splitting the resources between two engines instead of dedicating them to one.

  • MyISAM is the older of the two. It can be faster than InnoDB under certain circumstances and favours a read-only workload. Some web applications have been tuned around MyISAM (though that’s not to imply that they will be slower under InnoDB). MyISAM also supports the FULLTEXT data type, which allows very fast searches of large quantities of text data. However MyISAM is only capable of locking an entire table for writing. This means only one process can update a table at a time. As any application that uses the table scales this may prove to be a hindrance. It also lacks journaling, which makes it harder for data to be recovered after a crash. The following link provides some points for consideration about using MyISAM on a production database.

  • InnoDB is a more modern database engine, designed to be ACID compliant which guarantees database transactions are processed reliably. Write locking can occur on a row level basis within a table. That means multiple updates can occur on a single table simultaneously. Data caching is also handled in memory within the database engine, allowing caching on a more efficient row level basis rather than file block. To meet ACID compliance all transactions are journaled independently of the main tables. This allows for much more reliable data recovery as data consistency can be checked.

As of MySQL 5.5 InnoDB is the default engine, and is highly recommended over MyISAM unless you have specific needs for features unique to that engine.

Advanced configuration

Creating a tuned configuration

There are a number of parameters that can be adjusted within MySQL’s configuration files. This will allow you to improve the server’s performance over time.

Many parameters can be adjusted with the existing database, however some may affect the data layout and thus need more care to apply.

First, if you have existing data, you will first need to carry out a mysqldump and reload:

mysqldump --all-databases --routines -u root -p > ~/fulldump.sql

This will then prompt you for the root password before creating a copy of the data. It is advisable to make sure there are no other users or processes using the database whilst this takes place. Depending on how much data you’ve got in your database, this may take a while. You won’t see anything on the screen during this process.

Once the dump has been completed, shut down MySQL:

sudo service mysql stop

It’s also a good idea to backup the original configuration:

sudo rsync -avz /etc/mysql /root/mysql-backup

Next, make any desired configuration changes. Then, delete and re-initialise the database space and make sure ownership is correct before restarting MySQL:

sudo rm -rf /var/lib/mysql/*
sudo mysqld --initialize
sudo chown -R mysql: /var/lib/mysql
sudo service mysql start

The final step is re-importation of your data by piping your SQL commands to the database.

cat ~/fulldump.sql | mysql

For large data imports, the ‘Pipe Viewer’ utility can be useful to track import progress. Ignore any ETA times produced by pv; they’re based on the average time taken to handle each row of the file, but the speed of inserting can vary wildly from row to row with mysqldumps:

sudo apt install pv
pv ~/fulldump.sql | mysql

Once this step is complete, you are good to go!

Note:
This is not necessary for all my.cnf changes. Most of the variables you can change to improve performance are adjustable even whilst the server is running. As with anything, make sure to have a good backup copy of your config files and data before making changes.

MySQL Tuner

MySQL Tuner is a Perl script that connects to a running MySQL instance and offers configuration suggestions for optimising the database for your workload. The longer the server has been running, the better the advice mysqltuner can provide. In a production environment, consider waiting for at least 24 hours before running the tool. You can install mysqltuner from the Ubuntu repositories:

sudo apt install mysqltuner

Then once it has been installed, simply run: mysqltuner – and wait for its final report.

The top section provides general information about the database server, and the bottom section provides tuning suggestions to alter in your my.cnf. Most of these can be altered live on the server without restarting; look through the official MySQL documentation (link in Resources section at the bottom of this page) for the relevant variables to change in production. The following example is part of a report from a production database showing potential benefits from increasing the query cache:

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    key_buffer_size (> 1.4G)
    query_cache_size (> 32M)
    table_cache (> 64)
    innodb_buffer_pool_size (>= 22G)

It goes without saying that performance optimisation strategies vary from application to application. So for example, what works best for WordPress might not be the best for Drupal or Joomla. Performance can be dependent on the types of queries, use of indexes, how efficient the database design is and so on.

You may find it useful to spend some time searching for database tuning tips based on what applications you’re using. Once you’ve reached the point of diminishing returns from database configuration adjustments, look to the application itself for improvements, or invest in more powerful hardware and/or scaling up the database environment.

Resources

  • Full documentation is available in both online and offline formats from the MySQL Developers portal

  • For general SQL information see the O’Reilly books Getting Started with SQL: A Hands-On Approach for Beginners by Thomas Nield as an entry point and SQL in a Nutshell as a quick reference.

  • The Apache MySQL PHP Ubuntu Wiki page also has useful information.

MySQL — это реляционная СУБД, которая использует язык запросов SQL. В инструкции мы рассмотрим, как запустить MySQL на Ubuntu 20.04. Для этого нам потребуется облачный сервер.

Создание облачного сервера

Создать облачный сервер с операционной системой Ubuntu 20.04 можно в Облачной платформе Selectel.

Откройте панель управления, перейдите в раздел Серверы и нажмите Создать сервер.

В качестве источника выберите в списке Ubuntu 20.04.

Сконфигурировать сервер можно любым образом, подробнее о настройках в Базе знаний.

Чтобы в дальнейшем можно было подключиться к серверу извне, создайте плавающий IP-адрес. Для этого в выпадающем списке Сеть выберите Плавающий IP-адрес.

Подготовка системы

Перед установкой MySQL сервер нужно подготовить: подключиться к нему по SSH и настроить брандмауэр с помощью UFW.

Подключение по SSH

Для подключения по SSH в терминале локальной машины введите:

ssh root@server_ip

IP-адрес сервера находится на вкладке Порты на странице сервера.

Пароль для root-пользователя, который требуется при аутентификации, можно найти на вкладке Консоль.

Настройка брандмауэра в Ubuntu

После подключения настройте брандмауэр так, чтобы он разрешал подключения к серверу по SSH.

Обновите индекс пакетов:

sudo apt update

Установите утилиту UFW для настройки брандмауэра:

sudo apt install ufw

Проверьте список профилей UFW:

sudo ufw app list

В списке должен быть указан OpenSSH:

Available applications:
  OpenSSH

Разрешите подключения по SSH:

sudo ufw allow OpenSSH

Активируйте брандмауэр:

sudo ufw enable

Убедитесь, что брандмауэр активен, и включены профили OpenSSH:

sudo ufw status

Вывод будет выглядеть так:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)   

Теперь можно переходить к установке и настройке MySQL на облачном сервере.

Установка MySQL

Установить MySQL на Ubuntu 20.04 можно через пакет:

sudo apt install mysql-server

На момент публикации инструкции по умолчанию ставится версия 8.0.23.

Вы можете проверить установленную версию:

mysql --version

Начальная настройка MySQL

Запустите скрипт для повышения безопасности MySQL:

sudo mysql_secure_installation

Система запросит разрешение на установку плагина валидации паролей. Этот плагин проверяет безопасность пароля и позволяет пользователю ставить только достаточно защищенные пароли.

Если вы хотите установить этот плагин, введите в консоли y или Y.

Есть три уровня защищенности пароля: LOW (0), MEDIUM (1) и STRONG (2). Чтобы задать уровень пароля, нажмите соответствующую цифру, например, 2 для сильного пароля. Даже если вы на предыдущем шаге не установили плагин, система запросит вас поставить пароль для пользователя root — введите его два раза.

Если плагин установлен, будет показан уровень надёжности пароля Estimated strength of the password.

Далее система задаст ряд вопросов: хотите ли вы использовать этот пароль для продолжения работы, удалить ли всех анонимных пользователей, запретить удаленно подключаться как root, удалить тестовую БД и доступ к ней, перезагрузить таблицы с привилегиями. Вы можете ответить на все эти вопросы положительно: y, Y или Enter.

Если в выводе появится All done!, то пароль для root успешно настроен.

По умолчанию вход в MySQL в Ubuntu не будет происходить по паролю. Чтобы настроить подключение через пароль, следуйте инструкции ниже.

Настройка аутентификации и управление пользователями

Аутентификация по паролю

Для root-пользователя аутентификация в MySQL происходит с использованием плагина auth_socket. Чтобы при подключении запрашивался пароль, нужно изменить плагин.

Войдите в оболочку MySQL:

sudo mysql

Посмотрите, какой плагин используется:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Для пользователя root используется auth_socket:

Назначьте пользователю root новый плагин caching_sha2_password. Также установите пароль того уровня надежности, который вы задали ранее (на шаге Базовая настройка MySQL) — это может быть, например, тот же самый пароль. Введите его вместо password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Некоторые приложения для работы с MySQL (например, phpMyAdmin) не будут надежно работать с плагином caching_sha2_password. В таком случае лучше установить другой плагин — mysql_native_password.

Активируйте изменения:

mysql> FLUSH PRIVILEGES;

Проверьте, что для пользователя root плагин изменился на caching_sha2_password:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Закройте командную строку MySQL:

mysql> exit

Дополнительный пользователь (опционально)

Вы можете создать дополнительного пользователя для работы с MySQL.

Если вы установили аутентификацию по паролю, изменилась команда для подключения к консоли MySQL:

mysql -u root -p

Если у вас не установлена аутентификация по паролю, то для входа в MySQL используйте:

sudo mysql

Создайте нового пользователя и поставьте пароль:

mysql> CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';

Если вы хотите дать пользователю полный доступ к определенной базе данных, используйте:

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'localhost';

Закройте консоль MySQL:

mysql> exit

Тестирование MySQL

Посмотрите статус MySQL:

systemctl status mysql

В выводе должен быть индикатор зеленого цвета и статус active:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 09:57:07 UTC; 2h 39min ago
   Main PID: 2630 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1107)
     Memory: 331.4M
     CGroup: /system.slice/mysql.service
             └─2630 /usr/sbin/mysqld

По какой-то причине сервис может быть не активен. В таком случае запуск MySQL в Ubuntu происходит через команду:

sudo systemctl start mysql

Если вы хотите дополнительно проверить работу MySQL, используйте инструмент mysqladmin — он нужен для администрирования MySQL-сервера. Подключитесь к MySQL и запросите пароль от root:

sudo mysqladmin version -u root -p

Если вывод выглядит подобным образом, то MySQL успешно установлена и готова к использованию:

mysqladmin  Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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

Server version		8.0.23-0ubuntu0.20.04.1
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/run/mysqld/mysqld.sock
Uptime:			2 hours 47 min 34 sec

Threads: 2  Questions: 28  Slow queries: 0  Opens: 141  Flush tables: 3  Open tables: 60  Queries per second avg: 0.002

Удаление MySQL

Если по какой-то причине вам нужно удалить MySQL из Ubuntu 20.04, сначала остановите сервисы:

sudo systemctl stop mysql

Удалите пакеты MySQL:

sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*

Удалите всех пользователей:

sudo deluser --remove-home mysql
sudo delgroup mysql

Удалите файлы базы данных, конфигурационные файлы и логи:

sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql

Удалите оставшиеся зависимости:

sudo apt-get autoremove
sudo apt-get autoclean

Обновлено Обновлено: 20.07.2020
Опубликовано Опубликовано: 12.07.2018

Тематические термины: MySQL, MariaDB, Linux.

В статье пойдет речь о просмотре и смене пути расположения файлов баз данных MySQL. Приведенные примеры выполнены на CentOS 7 — также они будут работать на Ubuntu и многих других дистрибутивах Linux, FreeBSD и Windows.

Просмотр путей
    Командная строка
    Оболочка MySQL
    phpMyAdmin
Смена расположения баз
Смотрите также

Посмотреть текущий путь

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

Способ 1. Командная строка Linux.

В командной строке вводим:

systemctl status mysql || systemctl status mariadb

* для Windows используем оснастку Службы. Для FreeBSD используем команду service mysql-server stop.

Пример ответа:

mariadb.service — MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Ср 2018-07-11 15:38:16 MSK; 23h ago
  Process: 1067 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 992 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 1066 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ??1066 /bin/sh /usr/bin/mysqld_safe —basedir=/usr
           ??1248 /usr/libexec/mysqld —basedir=/usr —datadir=/var/lib/mysql —plugin-dir=/usr/lib64/mysql/plugin —log-error=/var/log/mariadb/mariadb.log —pid-file=/var/run/mariadb/mariadb.pid —socket…

* в выделенном фрагменте /var/lib/mysql — путь до файлов базы данных.

Способ 2. Командная оболочка MySQL.

Данный способ является более универсальным — он подойдет для любого дистрибутива Linux, FreeBSD, Windows. Также, метод универсален с точки зрения метода установки MySQL — чистая установка или в составе готовой сборки (Open Server, Xampp, Denwer …).

Заходим под пользователем root в командную оболочку СУБД:

mysql -uroot -p

Вводим:

> SHOW VARIABLES WHERE Variable_Name LIKE «datadir»;

или

> select @@datadir;

Пример ответа:

+—————+——————+
| Variable_name | Value           |
+—————+——————+
| datadir       | /var/lib/mysql/ |
+—————+——————+

Способ 3. Через phpMyAdmin.

Если у нас нет доступа к серверу по SSH или удаленному рабочему столу, запрос можно сделать в phpMyAdmin:

Пример создания запроса на получение пути к базе MySQL в phpMyAdmin

Смена пути

Останавливаем сервер баз данных:

systemctl stop mysql || systemctl stop mariadb

Создаем новый каталог, например:

mkdir /home/mysql

Переносим содержимое старого каталога в новый:

mv /var/lib/mysql/* /home/mysql/

Задаем права и владельца для нового каталога:

chown mysql:mysql /home/mysql

chmod 755 /home/mysql

Открываем конфигурационный файл my.cnf:

vi /etc/my.cnf.d/server.cnf

* в разных версиях mysql и mariadb могут использоваться разные пути:

  • /etc/my.cnf.
  • /etc/my.cnf.d/server.cnf.
  • /etc/my.cnf.d/mariadb-server.cnf.
  • В Windows это my.ini.

и задаем новый путь:

[mysqld]
datadir = /home/mysql

Запускаем сервер:

systemctl start mysql || systemctl start mariadb

Смотрите также

Установка MariaDB на CentOS 7

Как восстановить базу MySQL

Создание и удаление баз в MySQL/MariaDB

Экспорт баз данных MariaDB/MySQL в phpMyAdmin

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?

Да            Нет

Каждой компании требуется хорошая БД с легким реляционным управлением. Именно поэтому большая часть сайтов в интернете используют MySQL.

Для того чтобы вы смогли использовать данную СУБД её нужно установить на сервер и настроить. Сейчас мы с вами разберемся как установить MySQL на ваш линукс сервер, как его настроить, а также как получить удаленный доступ к вашему MySQL серверу.

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

Пример будет показан на Ubuntu 20.04.1 сервер я создал тут

Для того чтобы установить данную СУБД без проблем изначально необходимо обновить систему. Чтобы обновить систему используйте следующую команду:

Sudo apt-get update

После данной команды дождитесь окончания скачивания обновлений.

update

Как показано в примере выше обновление было скачено и установлено.

Далее будем скачивать сам пакет данных MySQL для этого используется следующая команда:

Sudo apt-get install mysql-server

install

Во время установки вам может быть предложено скачать дополнительные файлы, рекомендую это сделать, введя Y и нажав enter.

Настройка

После установки MySQL сервера стоит установить пароль для администратора. Сделать этом можно с помощью ряда команд.

Sudo mysql_secure_installation

secure

После ввода команды вам будет предложено установить плагин для улучшения безопасности сервера.

valid

Validate Password – Предлагает вам выбрать использование паролей различного уровня. Всего есть три уровня

  • Первый 0 – слабый пароль где кол-во символов должно быть больше либо равно 8.
  • Второй 1 – средний пароль где должны быть от 8 символов, включая цифры, буквы, специальные символы.
  • Третий 2 –  сильный пароль от 8 символов, должен включать цифры, буквы, специальные символы и буквы верхнего и нижнего регистра.

Вписываем 2 и жмем enter, а потом вводим желаемый пароль.

pass

Я вписал пароль с буквами верхнего и нижнего регистра и т.д. Как вы видите указано что безопасность пароля = 100 далее необходимо подтвердить, что данный пароль вам подходит, введя Y и нажав enter.

anon

После этого вам будет предложено удалить анонимных пользователей, которые создаются автоматически. Для большей безопасности их стоит удалить, введя Y и нажав enter.

remote

Далее вам будет предложено отключить возможность удаленного подключения к root пользователю для большей безопасности введите Y. (Однако если собираетесь входить в аккаунт удаленно, то введите N).

После этого можно будет удалить тестовые базы данных, а также обновить правила просто введя дважды Y.

db

Проверка работоспособности

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

Systemctl status mysql.service

check

Как видно на примере выше проверка прошла успешно и сервер запущен.

если вдруг сервер не активен запустите его с помощью команды –

sudo systemctl start mysql

Вход в root mysql

Для того чтобы вы смогли добавить пользователя вам нужно будет вписать следующие команды:

Sudo mysql

Данная команда вводит вас в саму базу сервера

home

Создание базы данных

Чтобы создать базу данных введите следующую команду:

Create database "namebase"

dbcreate

Как можно заметить база данных была создана

Добавление пользователей

После того как вы вошли в базу сервера от лица Root пользователя вам нужно будет ввести следующую команду для создания пользователя:

CREATE USER ‘USERNAME’@’host’ IDENTIFIED BY ‘password’ ;

user

  • Create user – Данная команда отвечает за создание пользователя.
  • ‘username’ – Здесь в кавычках вы указываете имя пользователя
  • ‘Host’ – Здесь в кавычках вы указываете способ подключения, если указать localhost, то подключиться удаленно нельзя, в моем примере я создал удаленное подключение
  • Identified by – Способ аутентификации
  • ‘password’ – здесь в кавычках нужно указать пароль, который подходит под вашу систему, которую мы указывали ранее. (Цифра 2, помните?)

очень важно не забудьте в конце поставить ;

Теперь, когда пользователь создан ему необходимо дать какие-то права, для этого введите команду:

GRANT ALL PRIVILEGES ON database name. * TO ‘username’@’host’

prive

Database_name. – нужно ввести имя базы данных

не забудьте поставить в конце имени точку

‘Username’ – нужно ввести имя пользователя

‘host’ – указываем можно ли будет подключиться удаленно

Как видите я дал все полномочия для работы с этой базой данных пользователю, которого только что создал.

Давайте войдем с помощью созданного пользователя для этого введите следующие команды

Mysql –uUsername –p (нажмите enter)

После этого у вас попросят ввести пароль данного пользователя.

enter

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

Введите пару команд для проверки:

  • Use mybase – позволяет использовать созданную базу данных
  • Show tables; — позволяет увидеть информацию

важно не забывать ;

Заключение

В данной статье мы с вами ознакомились, как можно установить сервер MySQL на линукс и как его настроить для работы. Также мы узнали каким образом можно его обезопасить, добавить пользователя и привилегии для него, а также проверить работоспособность. Теперь данный MySQL сервер готов к работе, к нему можно подключиться и взаимодействовать с ним и его базами данных. Для того чтобы понять каким образом вы можете далее работать с ним лучше всего все проделать самостоятельно чтобы не возникло никаких вопросов.

Каждый MySQL сервер должен быть в безопасности и не бояться, к примеру, ддос атак. Наш сервис mivocloud предоставляет отличную защиту от ддос атак, а также менеджмент ваших серверов (за отдельную плату) если вам нужен стабильный хостинг, то можете попробовать наш и вы не разочаруетесь.

MySQL – система управления базами данных (СУБД), используемая чаще всего в веб-разработке, но и не только там. MySQL является, наверное, одной из самых распостранённых СУБД. Её сильные стороны – быстрота, надёжность, универсальность. Ниже о том, как MySQL можно установить на сервер Ubuntu 20.04.

Установка MySQL 8.0

Первым делом, как всегда, необходимо обновить репозитории пакетов сервера:

$ sudo apt update

Теперь можно переходить к установке пакетов MySQL:

$ sudo apt install mysql-server

На момент написания статьи в репозиториях доступна версия 8.0.22. Проверить версию установленного пакета можно при помощи команды:

$ mysql -V
Версия MySQL

На этом процесс установки MySQL закончен. Теперь, необходимо внести некоторые изменения в конфигурацию установленной СУБД.

Настройка MySQL

Настройка заключается в изменении некоторых наиболее уязвимых опций СУБД, которые используются по умолчанию. Данное действие производится при помощи встроенного в MySQL специального скрипта:

$ sudo mysql_secure_installation

Для начала в открывшемся диалоге необходимо определить, нужно ли производить настройку компоненты валидации пароля, используемой при проверке надёжности пароля в MySQL. Если вы даёте согласие на использование валидации пароля, скрипт предложит вам установить уровень валидации, выбрав из 0 – низкий, 1 – средний, 2 – высокий:

Выбор уровня валидации пароля

На следующем шаге нужно установить пароль для учётной записи root в MySQL:

Пароль root`а MySQL

Скрипт оценит надёжность введённого пароля и запросит вашего согласия на его использование:

Оценка пароля root`а MySQL

В последующем диалоге можно использовать ответ Yes для удаления анонимных пользователей СУБД, запрещения удалённого подключения под рутовой учётной записью MySQL, удаления дефолтной БД test и для загрузки новых таблиц привилегий:

Настройка безопасности MySQL

Настройка аутентификации с помощью пароля

Для аутентификации учётной записи root MySQL по умолчанию используется плагин auth_socket. Это во многом более безопасно и удобно, но может осложнять взаимодействие СУБД с внешними приложениями в случаях, когда необходимо предоставить им доступ к пользователю MySQL.

Чтобы использовать пароль для подключения к СУБД под учётной записью root нужно изменить метод аутентификации. В нашем случае это – auth_socket.

В командной строке необходимо подключиться к MySQL:

$ sudo mysql

и вывести список аккаунтов СУБД, в котором виден используемый ими метод аутентификации (колонка plugin), командой:

mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;

Вывод данной инструкции должен выглядеть примерно так:

Пользователи MySQL

Для изменения метода аутентификации учётной записи root нужно использовать команду:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'psswd'; 

где значение psswd необходимо заменить на более надёжный пароль, который будет в дальнейшем использоваться учётной записью root для авторизации в MySQL.

Если вы планируете использовать MySQL с приложениями PHP, такими как phpMyAdmin, то возможно, будет актуально настроить аутентификацию с помощью более старого плагина mysql_native_password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'psswd';

Для применения произведённых изменений необходимо выполнить инструкцию:

mysql> FLUSH PRIVILEGES;

Проверить применение изменений можно набрав команду:

mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;

Выход из оболочки MySQL производится командой:

mysql> exit

Если для подключения к MySQL будет использоваться специально созданная для этого учётная запись, то необходимо войти в MySQL командой:

$ sudo mysql

либо, если аутентификация рутовой учётной записи производится с помощью пароля:

$ mysql -u root -p

Далее, создайте нового пользователя:

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'psswd';

Для предоставления новому пользователю прав на доступ к таблицам базы данных выполните инструкцию:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;

После чего можно выйти из оболочки MySQL:

mysql> exit

Автоматический запуск MySQL

Каким бы способом не был установлен MySQL, его запуск должен производиться автоматически. Чтобы убедиться в этом, необходимо набрать:

$ systemctl status mysql.service 
Статус MySQL

Также, активировать MySQL можно командой:

$ sudo systemctl start mysql

Теперь на вашем сервере произведена базовая установка СУБД MySQL.

Понравилась статья? Поделить с друзьями:
  • Как найти вербное воскресенье
  • Как найти различия между двумя файлами
  • Как найти работу по freelance
  • Как составить заявление при переводе на другую должность
  • Как найти период колебаний груза на нити