СправошнаяПоиск

Работа с базами данных на подсистеме Windows для Linux (WSL)

Это пошаговое руководство поможет вам приступить к подключению проекта в 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 - www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. Создайте файл списка для MongoDB: echo "deb [ arch=amd64,arm64 ] 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 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.

Чтобы работать с базами данных 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) добавьте следующее:

    Bash

  1.        # 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 уже использует!

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

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

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

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

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

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