Начало работы с базами данных на подсистема Windows для Linux

Это пошаговое руководство поможет приступить к подключению проекта в WSL к базе данных. Начало работы с MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite.

Предварительные требования

Различия между системами баз данных

Наиболее популярные варианты для системы баз данных:

MySQL — это реляционная база данных SQL с открытым исходным кодом, упорядоченная в одну или несколько таблиц, в которых типы данных могут быть связаны друг с другом. Это вертикально масштабируемый, что означает, что один конечный компьютер выполнит работу за вас. В настоящее время она является наиболее широко используемой из четырех систем баз данных.

PostgreSQL (иногда называемая Postgres) также является реляционной базой данных SQL с открытым кодом с акцентом на расширяемость и соответствие стандартам. Теперь она также может обрабатывать JSON, однако обычно лучше подходит для структурированных данных, вертикального масштабирования и требований ACID, таких как электронная коммерция и финансовые транзакции.

Microsoft SQL Server включает SQL Server в Windows, SQL Server на Linux и SQL в Azure. Это также системы управления реляционными базами данных, настроенные на серверах с основной функцией хранения и извлечения данных по запросу программных приложений.

SQLite — это автономная, файловая и бессерверная база данных с открытым кодом, известная своей переносимостью, надежностью и высокой производительностью даже в средах с низким объемом памяти.

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

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

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

Установка MySQL

Установка MySQL на WSL (т. е. Ubuntu:

  1. Откройте терминал WSL (т. е. Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите MySQL с помощью: sudo apt install mysql-server
  4. Подтвердите установку и получите номер версии: mysql --version

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

  1. Запустите сервер MySQL: sudo /etc/init.d/mysql start
  2. Запуск скрипта безопасности выводит запросы: sudo mysql_secure_installation
  3. В первом запросе будет предложено настроить подключаемый модуль проверки пароля, который можно использовать для проверки надежности пароля MySQL. Затем вы настроите пароль для корневого пользователя MySQL, решите, следует ли удалить анонимных пользователей, разрешите ли корневому пользователю выполнять вход как локально, так и удаленно, решите, следует ли удалить тестовую базу данных, и, наконец, решите, следует ли немедленно перезагрузить таблицы привилегий.

Чтобы открыть запрос MySQL, введите: sudo mysql

Чтобы просмотреть доступные базы данных, в командной строке MySQL введите: SHOW DATABASES;

Чтобы создать новую базу данных, введите: CREATE DATABASE database_name;

Чтобы удалить базу данных, введите: DROP DATABASE database_name;

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

Чтобы работать с базами данных MySQL в VS Code, попробуйте расширение MySQL.

Установка PostgreSQL

Установка PostgreSQL на WSL (т. е. Ubuntu:

  1. Откройте терминал WSL (т. е. Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите PostgreSQL (и пакет -contrib с некоторыми полезными служебными программами) с помощью команды sudo apt install postgresql postgresql-contrib.
  4. Подтвердите установку и получите номер версии: psql --version

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

  • sudo service postgresql status позволяет проверить состояние базы данных.
  • sudo service postgresql start , чтобы запустить базу данных.
  • sudo service postgresql stop позволяет завершить работу с базой данных.

Администратору по умолчанию postgres требуется назначать пароль для подключения к базе данных. Чтобы задать пароль, сделайте следующее:

  1. Введите команду: sudo passwd postgres.
  2. Появится запрос на ввод нового пароля.
  3. Закройте и снова откройте терминал.

Чтобы запустить PostgreSQL с оболочкой psql , выполните приведенные ниже действия.

  1. Запустите службу postgres: sudo service postgresql start
  2. Подключитесь к службе postgres и откройте оболочку psql: sudo -u postgres psql

После успешного входа в оболочку psql вы увидите, что ваша командная строка будет выглядеть следующим образом: postgres=#

Примечание

Кроме того, вы можете открыть оболочку psql, перейдя к пользователю postgres с помощью команды su - postgres, а затем введя команду psql.

Чтобы выйти из postgres=# введите или \q используйте сочетание клавиш CTRL+D.

Чтобы узнать, какие учетные записи пользователей были созданы в установке PostgreSQL, в терминале WSL введите psql -c "\du" или просто \du, если оболочка psql открыта. Эта команда отобразит столбцы: Имя пользователя учетной записи, Список атрибутов ролей и Член групп ролей. Чтобы вернуться в командную строку, введите: q.

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

Чтобы работать с базами данных PostgreSQL в VS Code, попробуйте расширение PostgreSQL.

Установка MongoDB

Чтобы установить MongoDB (версия 5.0) в WSL (Ubuntu 20.04):

  1. Откройте терминал WSL (т. е. Ubuntu) и перейдите в домашний каталог: cd ~
  2. Обновите пакеты Ubuntu: sudo apt update
  3. Импортируйте открытый ключ, используемый системой управления пакетами MongoDB: wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. Создайте файл списка для MongoDB: echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  5. Перезагрузите базу данных локального пакета: sudo apt-get update
  6. Установка пакетов MongoDB: sudo apt-get install -y mongodb-org
  7. Подтвердите установку и получите номер версии: mongod --version
  8. Создайте каталог для хранения данных: mkdir -p ~/data/db
  9. Запустите экземпляр Mongo: sudo mongod --dbpath ~/data/db
  10. Убедитесь, что экземпляр MongoDB работает с: ps -e | grep 'mongod'
  11. Чтобы выйти из оболочки MongoDB, используйте сочетания клавиш CTRL+C.

Совет

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

Отличия системы инициализации MongoDB

В приведенном выше примере мы запустили MongoDB напрямую. Другие руководства могут запускать MongoDB с помощью встроенной системы инициализации операционной системы. Вы можете увидеть команду sudo systemctl status mongodb, используемую в учебниках или статьях. В настоящее время WSL не поддерживает systemd (система управления службами в Linux).

Вы не должны заметить разницы, но если учебник рекомендует использовать sudo systemctl, используйте: sudo /etc/init.d/. Например, sudo systemctl status dockerдля WSL будет sudo /etc/init.d/docker status... или вы также можете использовать sudo service docker status.

Добавление скрипта инициализации для запуска MongoDB как услуги

Приведенные выше инструкции по установке устанавливают версию MongoDB, которая не включает скрипт автоматически./etc/init.d/ Если вы хотите использовать команды службы, вы можете скачать скрипт init.d для mongodb из этого источника, поместите его вручную в качестве файла по этому пути: /etc/init.d/mongodb а затем запустить Mongo в качестве службы с помощью sudo service mongodb start.

  1. Скачайте скрипт init.d для MongoDB: curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. Назначьте исполняемые разрешения этого скрипта: sudo chmod +x /etc/init.d/mongodb
  3. Теперь можно использовать команды службы MongoDB:
    • sudo service mongodb status позволяет проверить состояние базы данных. Если база данных не запущена, отобразится ответ [Fail].
    • sudo service mongodb start , чтобы запустить базу данных. Должен появиться ответ [ОК].
    • sudo service mongodb stop позволяет завершить работу с базой данных.
  4. Убедитесь, что вы подключены к серверу базы данных с помощью команды диагностики: mongo --eval 'db.runCommand({ connectionStatus: 1 })' будет выведена текущая версия базы данных, адрес сервера и порт, а также выходные данные команды состояния. Значение 1 в поле "ОК" в ответе указывает на то, что сервер работает.

Примечание

MongoDB имеет несколько параметров по умолчанию, включая хранение данных в /data/db и выполнение на порте 27017. Кроме того, mongod является управляющей программой (хост-процессом для базы данных), а mongo — оболочкой командной строки, которая подключается к конкретному экземпляру mongod.

VS Code поддерживает работу с базами данных MongoDB с помощью расширения Azure CosmosDB, вы можете создавать базы данных MongoDB, управлять ими из VS Code. Дополнительные сведения см. в документации по VS Code: работа с MongoDB.

Дополнительные сведения см. в документации по MongoDB:

Установка Microsoft SQL Server

Установка SQL Server на WSL (т. е. Следуйте инструкциям из этого краткого руководства. Установите SQL Server и создайте базу данных в Ubuntu.

Примечание

Хотя можно установить и настроить SQL Server в WSL, она не поддерживается. Кроме того, для SQL Server на Linux требуется система, которая не включена в WSL.

Чтобы работать с базами данных Microsoft SQL Server в VS Code, попробуйте расширение MSSQL.

Установка SQLite

Установка SQLite на WSL (т. е. Ubuntu):

  1. Откройте терминал WSL (т. е. Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите SQLite3 со следующими параметрами: sudo apt install sqlite3
  4. Подтвердите установку и получите номер версии: sqlite3 --version

Чтобы создать тестовую базу данных с именем example.db, введите: sqlite3 example.db

Чтобы просмотреть список баз данных SQLite, введите: .databases

Чтобы просмотреть состояние базы данных, введите: .dbinfo ?DB?

База данных будет пуста после создания. Вы можете создать новую таблицу для базы данных с помощью CREATE TABLE empty (kol INTEGER);.

Теперь введет созданную .dbinfo ?DB? базу данных.

Чтобы выйти из командной строки SQLite, введите: .exit

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

Чтобы работать с базами данных SQLite в VS Code, попробуйте использовать расширение SQLite.

Установка Redis

Установка Redis в WSL (т. е. Ubuntu):

  1. Откройте терминал WSL (т. е. Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите Redis с помощью следующих компонентов: sudo apt install redis-server
  4. Подтвердите установку и получите номер версии: redis-server --version

Чтобы запустить сервер Redis, выполните приведенные далее действия. sudo service redis-server start

Проверьте, работает ли redis (redis-cli — это служебная программа интерфейса командной строки для взаимодействия с Redis): redis-cli ping это должно возвращать ответ PONG.

Чтобы остановить работу сервера Redis, выполните приведенные далее действия. sudo service redis-server stop

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

Чтобы работать с базами данных Redis в VS Code, попробуйте расширение Redis.

Просмотр запущенных и настроенных псевдонимов профилей служб

Чтобы просмотреть службы, которые в настоящее время выполняются в дистрибутиве WSL, введите: service --status-all

Вводить sudo service mongodb start или sudo service postgres start и sudo -u postgrest psql может быть утомительно. Однако, вы можете рассмотреть возможность установки псевдонимов в файле .profile на WSL, чтобы сделать эти команды более быстрыми в использовании и легкими в запоминании.

Настройка собственного пользовательского псевдонима или ярлыка для выполнения этих команд:

  1. Откройте терминал WSL и введите cd ~, чтобы убедиться, что вы находитесь в корневом каталоге.

  2. Откройте файл .profile, управляющий настройками терминала, в текстовом редакторе терминала Nano: sudo nano .profile.

  3. В нижней части файла (не меняйте настройки # set PATH) добавьте следующее:

    # My Aliases
    alias start-pg='sudo service postgresql start'
    alias run-pg='sudo -u postgres psql'
    

    Это позволит вам ввести start-pg для запуска службы postgresql и run-pg — для открытия оболочки psql. Вы можете изменить start-pg и run-pg на любые имена, просто следите за тем, чтобы не перезаписать команду, которую postgres уже использует!

  4. После добавления новых псевдонимов выйдите из текстового редактора Nano, используя Ctrl+X — выберите Y (Да) при запросе сохранения и Enter (имя файла останется .profile).

  5. Закройте и снова откройте терминал WSL, а затем попробуйте использовать свои новые команды ввода псевдонима.

Устранение неполадок

Ошибка: недопустимый аргумент fdatasync для синхронизации каталогов

Убедитесь, что вы используете дистрибутив Linux в режиме WSL 2. Справку по переходу с WSL 1 на WSL 2 см. в разделе "Установка версии дистрибутива на WSL 1 или WSL 2".

Дополнительные ресурсы