Статьи

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

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

MySQL — это бесплатная реляционная база данных с открытым исходным кодом. MariaDB является ответвлением базы данных, созданной в 2010 году после опасений по поводу приобретения Oracle MySQL. (Он функционально идентичен, поэтому большинство концепций, описанных в этой статье, также применимы к MariaDB.)

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

В следующих разделах рассматриваются три основных способа использования MySQL в вашей локальной среде разработки:

  1. облачные решения
  2. использование Docker-контейнеров
  3. установка на ваш компьютер.

Эта популярная статья была обновлена ​​в 2020 году, чтобы точно отражать текущий процесс установки MySQL.

Облачный MySQL

Услуги MySQL предлагаются AWS, Azure, Google Cloud, Oracle и многими другими специализированными хостинговыми службами. Даже недорогие общие хосты предлагают MySQL с удаленными HTTPS или туннельными SSH-соединениями. Поэтому вы можете использовать базу данных MySQL удаленно в локальной разработке. Выгоды:

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

Недостатки:

  • установка может все еще занять значительное время
  • библиотеки подключений и процессы могут слегка различаться на разных хостах
  • экспериментирование более рискованно; любой разработчик может случайно стереть или изменить базу данных
  • развитие прекратится, когда у вас нет подключения к интернету
  • Там могут быть сногсшибательные затраты на использование.

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

Запустите MySQL с помощью Docker

Docker — это платформа, которая позволяет создавать, совместно использовать и запускать приложения в контейнерах . Представьте себе контейнер как изолированную виртуальную машину с собственной операционной системой, библиотеками и файлами приложений. (На самом деле контейнеры — это облегченные процессы, которые совместно используют ресурсы на хосте.)

Образ Docker — это снимок файловой системы, которую можно запустить как контейнер. Docker Hub предоставляет широкий спектр изображений для популярных приложений и баз данных, включая MySQL и MariaDB . Выгоды:

  • все разработчики могут использовать один и тот же образ Docker в macOS, Linux и Windows
  • Конфигурация установки MySQL и обслуживание минимальны
  • один и тот же базовый образ можно использовать в средах разработки и производства
  • разработчики сохраняют преимущества локальной разработки и могут экспериментировать без риска.

Docker выходит за рамки этой статьи, но ключевые моменты, на которые следует обратить внимание:

  • Docker — это клиент-серверное приложение. Сервер отвечает за управление изображениями и контейнерами и может управляться через REST API с использованием интерфейса командной строки. Поэтому вы можете запустить демон сервера в любом месте и подключиться к нему с другого компьютера.
  • Отдельные контейнеры должны использоваться для каждой технологии, необходимой вашему веб-приложению. Например, ваше приложение может использовать три контейнера: веб-сервер Apache с поддержкой PHP, базу данных MySQL и механизм Elasticsearch.
  • По умолчанию контейнеры не сохраняют состояние. Данные, сохраненные в файле или базе данных, будут потеряны при следующем перезапуске контейнера. Постоянство реализуется путем монтирования тома на хосте.
  • Каждый контейнер может общаться с другими в своей собственной изолированной сети. Определенные порты могут быть открыты для хоста при необходимости.
  • Доступна коммерческая, корпоративная версия Docker. Эта статья относится к сообществу с открытым исходным кодом, но применяются те же методы.

Установить докер

Инструкции по установке последней версии Docker для Linux доступны в Docker Docs . Вы также можете использовать официальные репозитории, хотя они могут иметь более старые версии. Например, в Ubuntu:

sudo apt-get update sudo apt-get remove docker docker-engine docker.io sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker 

Установка может отличаться в других выпусках Linux, поэтому поищите в Интернете соответствующие инструкции.

Docker CE Desktop для MacOS Sierra 10.12 и выше и Docker CE Desktop для Windows 10 Professional доступны в виде устанавливаемых пакетов. Вы должны зарегистрироваться в Docker Hub и войти в систему для загрузки.

Docker в Windows 10 использует платформу виртуализации Hyper-V, которую вы можете включить с помощью функции « Включение или отключение» функций панели Windows, доступ к которой можно получить из « Программы и компоненты» на панели управления. Docker также может использовать подсистему Windows для Linux 2 (WSL2 — в настоящее время в бета-версии).

Чтобы Docker мог получить доступ к файловой системе Windows, выберите « Настройки» в меню значка на панели задач, перейдите на панель « Общие диски» и проверьте, какие диски разрешено использовать серверу.

Общие диски Docker в Windows

Убедитесь, что Docker успешно установлен, введя docker version Docker в командной строке. При желании попробуйте docker run hello-world чтобы убедиться, что Docker может извлекать образы и запускать контейнеры, как ожидалось.

Запустите контейнер MySQL

Чтобы облегчить взаимодействие контейнеров Docker, создайте dbnet сеть с именем dbnet или любым dbnet именем, которое вы предпочитаете (этот шаг можно пропустить, если вы просто хотите получить доступ к MySQL с хост-устройства) :

 docker network create --driver bridge dbnet 

Теперь создайте в вашей системе папку с data в которой будут храниться таблицы MySQL, например, mkdir data .

Самый последний сервер MySQL 8 теперь может быть запущен с:

 docker run -d --rm --name mysql --net dbnet -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysecret -v $PWD/data:/var/lib/mysql mysql:8 

Аргументы использованы:

  • -d запускает контейнер в качестве фоновой службы.
  • --rm удаляет контейнер, когда он останавливается.
  • --name mysql назначает имя mysql контейнеру для более легкого управления.
  • -p 3306:3306 перенаправляет порт контейнера на хост. Если вы хотите использовать порт 3307 на хосте, вы должны указать -p 3307:3306 .
  • -e определяет переменную среды, в этом случае пароль пользователя root по умолчанию MySQL установлен на mysecret .
  • -v монтирует том, поэтому папка данных MySQL /var/lib/mysql в контейнере будет храниться в подпапке data текущей папки на хосте.

$PWD — это текущая папка, но она работает только в macOS и Linux. Пользователи Windows должны указывать весь путь, используя косую черту — например, /c/mysql/data .

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

 docker logs mysql 

Использование инструмента MySQL командной строки контейнера

После запуска откройте оболочку bash в контейнере MySQL, используя:

 docker exec -it mysql bash 

Затем подключитесь к серверу MySQL от имени пользователя root:

 mysql -u root -pmysecret 

-p сопровождается паролем, установленным в аргументе Dock -e показанном выше. Не добавляйте пробел!

Теперь можно использовать любые команды MySQL, такие как show databases; create database new; и так далее.

Используйте клиент MySQL

Любое клиентское приложение MySQL может подключиться к серверу через порт 3306 хост-машины.

Если у вас не установлен клиент MySQL, Adminer — это легкий инструмент управления базами данных PHP, который также можно запускать как контейнер Docker!

 docker run -d --rm --name adminer --net dbnet -p 8080:8080 adminer 

После запуска откройте http://localhost:8080 в браузере и введите mysql качестве имени сервера, root качестве имени пользователя и mysecret в качестве пароля:

Adminer

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

Контейнеры Стоп Докер

Контейнеры могут быть остановлены (и автоматически удалены) командой docker stop за которой следует одно или несколько имен контейнеров. Например:

 docker stop mysql adminer 

Образы и контейнеры Docker легче по сравнению с виртуальными машинами, но вы можете стереть все данные, используя:

 docker system prune -a docker volume prune 

Использование docker-compose для управления контейнерами

docker-compose может управлять любым количеством контейнеров без необходимости вводить длинные команды Docker. Создайте файл docker-compose.yml в вашей текущей папке:

 version: '3.7' services: mysql: environment: - MYSQL_ROOT_PASSWORD=mysecret image: mysql:8 container_name: mysql volumes: - ./data:/var/lib/mysql networks: - dbnet ports: - "3306:3306" adminer: image: adminer container_name: adminer depends_on: - mysql networks: - dbnet ports: - "8080:8080" networks: dbnet: 

Затем запустите:

 docker-compose up 

Контейнеры MySQL и Adminer запускаются с теми же конфигурациями, которые использовались выше. Нажмите Ctrl + C, чтобы остановить и удалить контейнеры.

Запустите MySQL на вашей ОС

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

Все-в-одном пакеты

Существует несколько превосходных универсальных дистрибутивов MacOS, Linux и Windows, которые содержат Apache, PHP, MySQL, phpAdmin, SSL-сертификаты, платформы и другие приложения в одном установочном пакете. Варианты включают в себя:

Большинство из них идеально подходят для быстрой разработки PHP и MySQL и могут предлагать несколько редакций каждого сервиса. Тем не мение:

  • Обновления не гарантированы. Многие пакеты по-прежнему предлагают более старые версии MySQL.
  • Разработчики, использующие разные ОС или настраиваемые конфигурации, могут создавать проблемы совместимости в общих кодовых базах.
  • Среды разработки и производства могут существенно различаться.

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

Установите MySQL на Linux

Существует множество способов установить MySQL на различные дистрибутивы Linux:

Установите MySQL на macOS

MySQL можно установить на MacOS 10.13 и выше, загрузив собственный установщик пакета .dmg образ диска. Дважды щелкните, чтобы смонтировать образ, затем дважды щелкните файл .pkg чтобы запустить мастер установки .

Если вы решите не запускать MySQL автоматически, его можно запустить с помощью значка на панели «Системные настройки»:

MySQL в macOS Системные настройки

Также можно установить MySQL на macOS, используя:

Установите MySQL на Windows

MySQL может быть установлен на 64-разрядных выпусках Windows 10 и Windows 2012 Server R2 и выше. Вам также потребуются следующие среды выполнения:

Установщик MSI предоставляет сервер, а также такие инструменты, как MySQL Workbench. (Меньший «веб» установщик MSI будет загружать пакеты при выборе.)

Дважды щелкните файл MSI, чтобы запустить мастер установки, и обратитесь к документации MySQL для получения информации о конкретных параметрах конфигурации.

По умолчанию:

  • двоичные файлы программы и документация установлены в %PROGRAMFILES%\MySQL\MySQL Server Vv\ (например, C:\Program Files\MySQL\MySQL Server 8.0\ )
  • данные базы данных хранятся в папке %PROGRAMDATA%\MySQL\MySQL Server Vv\ (например, C:\ProgramData\MySQL\MySQL Server 8.0\ )

ZIP-архив без установки также доступен . Это можно скопировать на USB-диск или в любое место в системе Windows.

Сначала извлеките содержимое ZIP в C:\mysql или папку по вашему выбору.

Затем создайте папку, в которой будут храниться данные базы данных, например C:\mysqldata . Использование папки вне C:\mysql более безопасно и позволяет обновлять файлы приложения.

Теперь создайте файл my.ini в C:\mysql который определяет папки приложения и данных. например:

 [mysqld] # installation path basedir=C:/mysql # data directory datadir=E:/mysqldata 

(Требуется прямой путь / косая черта, хотя также можно использовать двойную обратную косую черту.)

Теперь инициализируйте папку данных и создайте пользователя по умолчанию (без пароля), введя следующую команду в командной строке:

 C:\mysql\bin\mysqld.exe --initialize-insecure --user=mysql 

Теперь сервер может быть запущен с:

 C:\mysql\bin\mysqld.exe --console 

Используйте клиент MySQL, введя C:\mysql\bin\mysql.exe -u root в другой консоли. Теперь вы можете выполнять команды SQL, такие как show databases; и exit набрав exit .

Сервер может быть отключен с помощью:

 C:\mysql\bin\mysqladmin.exe -u root shutdown 

При желании MySQL может быть установлен как автоматически запускаемая служба Windows:

 C:\mysql\bin\mysqld.exe --install 

Сервис запустится при перезагрузке или вы можете ввести net start mysql чтобы запустить его немедленно. Его можно остановить с помощью net stop mysql или управлять с помощью панели « Службы» в средствах администрирования Windows :

Служба Windows MySQL

Услуга может быть полностью удалена с помощью:

 net stop mysql C:\mysql\bin\mysqld.exe --remove 

Подавляющие параметры MySQL

Существует несколько вариантов установки MySQL независимо от того, какую ОС вы используете.

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