Установка MySQL на Linux #
Будем устанавливать MySQL как сервис в систему, нам будет необходима любая версия 8.0.x, которая есть в репозитория дистрибутива.
Откройте терминал и выполните команды в зависимости от вашего пакетного менеджера:
APT (Ubuntu, Debian)
Обновите список пакетов
sudo apt update
Запускаем обновление пакетов репозитория:
sudo apt install mysql-server
Обновите список пакетов
sudo pacman -Syu
Установите пакет mysql :
sudo pacman -S mysql
Обновите Yum репозиторий, скачайте
и установите согласно настройкам
После того как пакет установится, он у вас не спросит ни пароля ни других данных для аутентификации. Чтобы задать первоначальные настройки необходимо запустить конфигуратор.
Также может потребоваться установка если вы выбрали mariadb:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
При успехе будет создан пользователь root без пароля и пользователь mysql без пароля. Чтобы использовать эти учетные записи, необходимо быть пользователем root или mysql при использовании клиентов, что неудобно и небезопасно. Желательно выполнить конфигурацию и создать пользователя.
- вы всегда можете проверить работает ли сервер Mysql командой
systemctl status mysql
Для перезапуска команда
systemctl restart mysql
Для остановки mysql
systemctl stop mysql
Конфигурация MySQL #
Для начала работы зададим первоначальные настройки и настройки безопасности:
В терминале наберите команду
Будет запущено поэтапный конфигуратор, который будет вам задавать вопросы.
Первый вопрос: Необходимо ли делать валидацию новых паролей пользователей базы данных. Отвечайте на этот вопрос Y.
Далее вас спросят насколько сложными должны быть новые пароли. Если вы настраиваете сервер для тестов, локально. Можете выбрать 0, пароль должен быть 8 и более символов. В остальных случаях используйте 1 или 2.
Далее введите пароль от root пользователя:
Обязательно запомните пароль, он требуется для настройки базы данных, создания пользователей и прочих важных действий с бд
После ввода пароля, вам предложат повторить пароль для подтверждения. Далее вас могут спросить, готовы продолжить с установленным паролем, вводите Y и нажмите Enter.
Следующим шагом, предложат удалить анонимный аккаунт test, вы можете использовать его при использовании бд как тестовую. А так принято удалять, чтобы не было возможности получить доступ к бд без логина и пароля. Выбирайте Y для удаления.
После будет предложено запретить доступ пользователю root если попытка получить доступ к бд будет не с локального компьютера на котором установлен сервис mysql.
Если вы используете учебную базу на одном компьютере, то закрывайте доступ.
Даже если вы планируете использовать базу данных с другого компьютера — создайте пользователя и разрешите доступ только ему для конкретной базы.
В нашем случае выбирайте Y:
Далее предлагают удалить тестовые базы, соглашайтесь если вам они не нужны, выбирайте Y:
И последний вопрос будет — перезагрузить ли привилегии пользователей, чтобы изменения вступили в силу:
Создание нового пользователя #
Самое время проверить и подключиться к mysql и создать пользователя через которого будем работать:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
username — логин нового пользователя
password — пароль, на скриншоте используется slsds23#.jd
Поменяйте значения по вашему усмотрению и запомните.
Для учебных целей выдайте права на все базы этому пользователю:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
Давать все права (привилегии) на реальных базах опасно, это допустимо делать только на учебных базах данных.
Остается выйти quit и зайти уже под новым пользователем
Проверка подключения #
Для подключения вводим команду
mysql -u username -p
, где мы указываем два параметра:
-u и после него указывается пользователь под которым мы хотим зайти в консоль mysql
-p после него не указываем ничего, а значит нас спросят ввести пароль отдельно. Можно пароль вводить после, например так mysql -u username -p 12345 , но это менее безопасно. Так как пароль остается в открытом виде.
База данных настроена и ей можно пользоваться.
Стандартные данные для подключения к бд #
Данные подключения для использования клиентов с графическим интерфейсом:
host: localhost port: 3306 username: username password:
# MySQL: установка на Ubuntu, настройка и основы работы из терминала️
MySQL (MariaDB) — одна из самых популярных баз данных. Разберемся, как установить ее в Ubuntu, произвести базовую настройку, а так же познакомимся с основами работы с MySQL из терминала.
- Так MySQL или MariaDB?
- Установка MySQL/MariaDB
- Первичная настройка MySQL/MariaDB
- Создание пользователя-администратора
- Подключение к MySQL/MariaDB через GUI-клиент
- Создание пользователя для использования в коде приложения
- Комментарии
# Так MySQL или MariaDB?
Если быть до конца откровенным, то речь в этой статьей пойдет о СУБД MariaDB, а не о MySQL. Однако, важно понимать, что отличия этих систем управления базами данных не так значительны, как Вы могли подумать. В подавляющем большинстве случаев Вы даже не заметите разницы между этими СУБД, т.к. MariaDB реализует полностью идентичный MySQL интерфейс.
Это значит, что почти любой проект использующий MySQL может быть перенесен на MariaDB вообще без каких либо изменений. Если вы работаете с БД из терминала, то здесь вас тоже не будет ждать никаких сюрпризов, т.к. используемые команды и принципы работы ничем не отличаются. То же можно сказать и о GUI-интерфейсах, здесь вы просто подключаетесь к MariaDB, как к MySQL.
MariaDB — это форк проекта MySQL, разрабатываемый полностью открыто сообществом энтузиастов. По заверению разработчиков все технологии, существующие в закрытой версии MySQL 5.5 Enterprise Edition, в полном объеме представлены и в MariaDB. MariaDB развивается быстрее и имеет больше возможностей, чем MySQL, касающихся оптимизации, улучшения работы с памятью, и многого другого. Обычно, со временем, эти возможности реализуют и в MySQL. Например, поддержка библиотеки GIS для работы с геоточками, полигонами и маршрутами появилась в MariaDB раньше, чем в MySQL. Также сообщения об ошибках и проблемы уязвимостей в MariaDB обычно закрываются гораздо оперативнее, чем в MySQL.
По большинству параметров MariaDB намного лучше, чем MySQL. С более полным перечнем различий MySQL и MariaDB можно ознакомиться в официальной документации здесь — MariaDB в сравнении с MySQL — Особенности
# Установка MySQL/MariaDB
Установка MySQL или MariaDB в операционной системе Ubuntu или любом другой Debian-based дистрибутиве Linux не будет проблемой даже для новичка. Дла того, чтобы получить рабочую систему на своем компьютере, достаточно просто выполнить пару команд в терминале и пользоваться готовой к бою СУБД без каких либо проблем.
Для того, чтобы установить MariaDB на компьютер выполните в терминале следующую команду:
sudo apt install mariadb-server mariadb-client
Проверить установленную версию можно так
mysql --version
Как видите, к установленной MariaDB мы даже обращаемся ровно так, как если бы это было оригинальная MySQL!
В подавляющем большинстве случаев сразу после установки ваша база данных полностью готова «к бою». Проблема с запуском службы у меня возникла всего один раз. Если Вас постигла та же участь и при попытке подключения к БД Вы все-таки получаете ошибку, то проверьте запущена ли служба
systemctl status mysql
Если все нормально, Вы должны увидеть в терминале зелененькую надпись active
Если в вашем случае статус другой, попробуйте перезапустить службу при помощи команды restart
sudo systemctl restart mysql
# Первичная настройка MySQL/MariaDB
Для первичной настройки безопасности MySQL или MariaDB существует специальный скрипт mysql_secure_installation . Он в автоматическом режиме удаляет анонимных пользователей, запрещает удаленный доступ к базе данных и обновляет привилегии. Для того, чтобы запустить его, выполните в терминале следующую команду
sudo mysql_secure_installation
После запуска скрипт задаст Вам несколько вопросов. Вам следует ответить на них положительно: y или Y . Можно также просто нажимать Enter .
Если по завершении работы скрипта в выводе появится «All done!», значит все прошло успешно. Можно двигаться дальше!
# Создание пользователя-администратора
Для того, чтобы подключаться к серверу базы данных, необходимо создать пользователя.
В этом разделе мы создадим пользователя с очень высокими привилегиями, поэтому использовать его для подключения из разрабатываемых вами приложений не следует!
Создание пользователей для подключения к БД непосредственно из кода приложения рассмотрено ниже — Создание пользователя для использования в коде
Для создания пользователей мы будем пользоваться интерфейсом командной строки. Чтобы попасть в него, откройте терминал и введите
sudo mysql
Эта команда запустить MySQL или MariaDB в интерактивном режиме, то есть Вы выполнять SQL-запросы прямо из терминала. Для создания пользователя напишите следующий запрос и нажмите Enter.
CREATE USER ''@'localhost' IDENTIFIED BY '';
Разумеется, вместо и необходимо ввести свои имя пользователя и пароль. В качестве имени пользователя Вы можете, например, использовать «admin» (без кавычек).
Каждый запрос должен оканчиваться символом ; (точка с запятой).
Пока точка с запятой не будет введена, MySQL будет считать, что запрос не закончен и ожидать его продолжения даже если вы нажмете Enter
Далее необходимо расшарить админу доступ ко всем базам данных и таблицам, а также выдать права на названчение привилегий другим пользователям. Далем это при помощи выполнения запроса
GRANT ALL PRIVILEGES ON *.* TO ''@'localhost' WITH GRANT OPTION;
После того, как права выданы, активируем изменения в привилегиях пользователей
FLUSH PRIVILEGES;
После этого можем спокойно покидать CLI, не забыв напоследок умилиться тем, как вежливо он попрощается с Вами Для этого вводим exit и нажимаем Enter
Отлично! Пользователь создан и наделен особыми правами по управлению любыми базами и таблицами и выдачи прав другим пользователям.
Для того, чтобы теперь войти в интерактивный режим MySQL из терминала, используя только что созданного пользователя, воспользуйтесь командой (угловые скобки в начале и конце имени пользователя ставить не надо)
mysql -u Имя пользователя>
После этого MySQL запросит у Вас пароль пользователя и вы снова окажетесь в интерактивной оболочке, где сможете создавать новые базы данных, пользователей и любые другие запросы к БД.
# Подключение к MySQL/MariaDB через GUI-клиент
Не каждый пользователь чувствует себя комфортно и уверенно, выполняя запросы к БД вручную из терминала. Да и это не всегда быстро и удобно. Именно поэтому человечество изобрело графический интерфейс.
Существует большое количество GUI-программ, позволяющих просматривать таблицы и выполнять другие действия по щелчку мыши в удобном человеко-ориентированном виде. Подключение к ним осуществляется через те же данные и настройки, которые Вы используете для подключения к БД из кода.
Выглядят такие программы по-разному, но принцип подключения у всех одинаковый. Я покажу стандартные настройки на примере программы Beekeeper Studio.
Для подключения Вам необходимо:
- выбрать тип базы данных MySQL или MariaDB ;
- в поле host или сервер ввести значение localhost или 127.0.0.1 ;
- настроить порт для подключения. Стандартный порт — 3306 (если Вы не меняли его в настройках)
- ввести имя пользователя и пароль;
- нажать кнопку для подключения к БД.
Вот и все. Программа готова, можно творить свои чудеса инженерной мысли!
# Создание пользователя для использования в коде приложения
Зачастую СУБД управляет более, чем одной базой данных. Например, у вас на одной машине вполне могут хоститься несколько разных проектов, использующих разные базы в рамках одной СУБД. Именно поэтому использование в коде приложения пользователя с полным глобальным доступом ко всем базам данных — не очень хорошая идея.
Гораздо лучше создавать отдельных пользователей с минимально необходимым уровнем доступа для каждого приложения, использующего СУБД. Давайте рассмотрим, как это сделать на примере создания одной базы данных, пользователя для нее и соответствующей настройки.
Начнем с создания базы данных. Для этого необходимо открыть терминал и перейти в интерактивную оболочку MySQL
sudo mysql
Далее в рамках интерактивной оболочки выполним запрос на создание новой базы данных, которая на моем примере будет называться best_app_db. Разумеется, у Вас она может называться как угодно.
CREATE DATABASE best_app_db;
Не забываем про точки с запятыми в конце каждого запроса
БД создана. Теперь создадим пользователя best_app_user с паролем 123qwe
CREATE USER 'best_app_user'@'localhost' IDENTIFIED BY '123qwe';
Выдадим полные права доступа ко всем таблицам, но только в пределах базы best_app_db
GRANT ALL PRIVILEGES ON best_app_db.* TO 'best_app_user'@'localhost';
Обратите внимание, что в отличие от создания пользователя-админа мы не включили в запрос оператор WITH GRANT OPTION . Это значит, что пользователь best_app_user сможет делать с таблицами в пределах БД все, что захочет, однако выдать такие привилегии кому-то еще у него не получится.
Далее обновляем привилегии и покидаем интерактивную оболочку с чувством выполненного долга
FLUSH PRIVILEGES; exit
Осталось только прописать только что созданного пользователя в настройках подключения вашего приложения и дело сделано! Надеюсь, эта статья помогла Вам разобраться в теме. В случае обнаружения ошибок или недочетов не стесняйтесь писать в комментарии.
Как скачать mysql на linux
This site https://dev.mysql.com/doc/mysql-installation-excerpt/8.2/en/linux-installation.html is experiencing technical difficulty. We are aware of the issue and are working as quick as possible to correct the issue.
We apologize for any inconvenience this may have caused.
To speak with an Oracle sales representative: 1.800.ORACLE1.
To contact Oracle Corporate Headquarters from anywhere in the world: 1.650.506.7000.
To get technical support in the United States: 1.800.633.0738.
Как скачать mysql на linux
This site https://dev.mysql.com/doc/mysql-getting-started/en/ is experiencing technical difficulty. We are aware of the issue and are working as quick as possible to correct the issue.
We apologize for any inconvenience this may have caused.
To speak with an Oracle sales representative: 1.800.ORACLE1.
To contact Oracle Corporate Headquarters from anywhere in the world: 1.650.506.7000.
To get technical support in the United States: 1.800.633.0738.