Начало работы с базами данных в подсистеме Windows для LinuxGet started with databases on Windows Subsystem for Linux

Это пошаговое руководство поможет приступить к подключению проекта в WSL к базе данных.This step-by-step guide will help you get started connecting your project in WSL to a database. Приступая к работе с MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite.Get started with MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server, or SQLite.

Предварительные условияPrerequisites

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

Наиболее популярными вариантами для системы базы данных являются:The most popular choices for a database system include:

MySQL — это реляционная база данных SQL с открытым исходным кодом, которая организует данные в одну или несколько таблиц, в которых типы данных могут быть связаны друг с другом.MySQL is an open-source SQL relational database, organizing data into one or more tables in which data types may be related to each other. Он вертикально масштабируемый. Это означает, что один конечный компьютер выполняет свою работу.It is vertically scalable, which means one ultimate machine will do the work for you. В настоящее время это наиболее широкое использование четырех систем баз данных.It is currently the most widely used of the four database systems.

PostgreSQL (иногда называется postgres) — это также реляционная база данных SQL с открытым исходным кодом, в которой особое внимание уделяется расширению и соответствию стандартам.PostgreSQL (sometimes referred to as Postgres) is also an open-source SQL relational database with an emphasis on extensibility and standards compliance. Теперь она также может обрабатывать JSON, однако обычно лучше подходит для структурированных данных, вертикального масштабирования и требований ACID, таких как электронная коммерция и финансовые транзакции.It can handle JSON now too, but it is generally better for structured data, vertical scaling, and ACID-compliant needs like eCommerce and financial transactions.

Microsoft SQL Server включает SQL Server в Windows, SQL Server на Linux и SQL в Azure.Microsoft SQL Server includes SQL Server on Windows, SQL Server on Linux, and SQL on Azure. Это также системы управления реляционными базами данных, настроенные на серверах с основной функцией хранения и извлечения данных в соответствии с запросом программных приложений.These are also relational database management systems set up on servers with primary function of storing and retrieving data as requested by software applications.

SQLite — это автономно автономная, основанная на файлах база данных с открытым исходным кодом, которая обеспечивает переносимость, надежность и высокую производительность даже в средах с нехваткой памяти.SQLite is an open-source self-contained, file-based, “serverless” database, known for its portability, reliability, and good performance even in low-memory environments.

MongoDB — это база данных документов NoSQL с открытым исходным кодом, предназначенная для работы с JSON и хранения данных без схемы.MongoDB is an open-source NoSQL document database designed to work with JSON and store schema-free data. Это горизонтально масштабируемый. Это означает, что несколько небольших компьютеров будут выполнять свою работу.It is horizontally scalable, which means multiple smaller machines will do the work for you. Это хорошо подходит для гибкости и неструктурированных данных, а также для кэширования аналитики в режиме реального времени.It's good for flexibility and unstructured data, and caching real-time analytics.

Redis — это хранилище структуры данных NoSQL в памяти с открытым исходным кодом.Redis is is an open-source NoSQL in-memory data structure store. Вместо документов используются пары "ключ-значение" для хранения.It uses key-value pairs for storage instead of documents. Redis известен как гибкость, производительность и широкая поддержка языка.Redis is known for its flexibility, performance, and wide language support. Он достаточно гибок для использования в качестве кэша или брокера сообщений и может использовать такие структуры данных, как списки, наборы и хэши.It’s flexible enough to be used as a cache or message broker and can use data structures like lists, sets, and hashes.

Выбор базы данных должен зависеть от типа приложения, с которым вы будете использовать базу данных.The sort of database you choose should depend on the type of application you will be using the database with. Мы рекомендуем вам изучить преимущества и недостатки структурированных и неструктурированных баз данных и сделать выбор в зависимости от конкретного случая использования.We recommend that you look up the advantages and disadvantages of structured and unstructured databases and choose based on your use case.

Установка MySQLInstall MySQL

Установка MySQL в WSL (Ubuntu 18,04):To install MySQL on WSL (Ubuntu 18.04):

  1. Откройте терминал WSL (например, Ubuntu 18.04).Open your WSL terminal (ie. Ubuntu 18.04).
  2. Обновите пакеты Ubuntu: sudo apt updateUpdate your Ubuntu packages: sudo apt update
  3. После обновления пакетов установите MySQL с помощью: sudo apt install mysql-serverOnce the packages have updated, install MySQL with: sudo apt install mysql-server
  4. Подтвердите установку и получите номер версии: mysql --versionConfirm installation and get the version number: mysql --version

Также может потребоваться запустить прилагаемый сценарий безопасности.You may also want to run the included security script. Это изменяет некоторые менее безопасные параметры по умолчанию для таких вещей, как удаленные корневые имена входа и примеры пользователей.This changes some of the less secure default options for things like remote root logins and sample users. Чтобы запустить сценарий безопасности, выполните следующие действия.To run the security script:

  1. Запустите сервер MySQL. sudo /etc/init.d/mysql startStart a MySQL server: sudo /etc/init.d/mysql start
  2. Запустите запрос сценария безопасности: sudo mysql_secure_installationStart the security script prompts: sudo mysql_secure_installation
  3. В первом запросе будет указано, хотите ли вы настроить подключаемый модуль проверки пароля, который можно использовать для проверки надежности пароля MySQL.The first prompt will ask whether you’d like to set up the Validate Password Plugin, which can be used to test the strength of your MySQL password. Затем вы установите пароль для привилегированного пользователя MySQL, решите, следует ли удалять анонимных пользователей, решите, следует ли разрешить вход привилегированного пользователя как локально, так и удаленно, решить, следует ли удалить тестовую базу данных, и, наконец, решить, нужно ли повторно загружать таблицы прав.You will then set a password for the MySQL root user, decide whether or not to remove anonymous users, decide whether to allow the root user to login both locally and remotely, decide whether to remove the test database, and, lastly, decide whether to reload the privilege tables immediately.

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

Чтобы узнать, какие базы данных доступны, в командной строке MySQL введите: SHOW DATABASES;To see what databases you have available, in the MySQL prompt, enter: SHOW DATABASES;

Чтобы создать новую базу данных, введите: CREATE DATABASE database_name;To create a new database, enter: CREATE DATABASE database_name;

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

Дополнительные сведения о работе с базами данных MySQL см. в документации по MySQL.For more about working with MySQL databases, see the MySQL docs.

Для работы с базами данных MySQL в VS Code попробуйте расширение MySQL.To work with with MySQL databases in VS Code, try the MySQL extension.

Установка PostgreSQLInstall PostgreSQL

Чтобы установить PostgreSQL на WSL (Ubuntu 18,04), сделайте следующее:To install PostgreSQL on WSL (Ubuntu 18.04):

  1. Откройте терминал WSL (например, Ubuntu 18.04).Open your WSL terminal (ie. Ubuntu 18.04).
  2. Обновите пакеты Ubuntu: sudo apt updateUpdate your Ubuntu packages: sudo apt update
  3. После обновления пакетов установите PostgreSQL (и пакет -contrib с некоторыми полезными служебными программами) с помощью команды sudo apt install postgresql postgresql-contrib.Once the packages have updated, install PostgreSQL (and the -contrib package which has some helpful utilities) with: sudo apt install postgresql postgresql-contrib
  4. Подтвердите установку и получите номер версии: psql --versionConfirm installation and get the version number: psql --version

Есть 3 команды, о которых необходимо знать после установки PostgreSQL:There are 3 commands you need to know once PostgreSQL is installed:

  • sudo service postgresql status позволяет проверить состояние базы данных.sudo service postgresql status for checking the status of your database.
  • sudo service postgresql start позволяет запустить базу данных.sudo service postgresql start to start running your database.
  • sudo service postgresql stop позволяет завершить работу с базой данных.sudo service postgresql stop to stop running your database.

Администратору по умолчанию postgres требуется назначать пароль для подключения к базе данных.The default admin user, postgres, needs a password assigned in order to connect to a database. Чтобы задать пароль, сделайте следующее:To set a password:

  1. Введите команду: sudo passwd postgres.Enter the command: sudo passwd postgres
  2. Появится запрос на ввод нового пароля.You will get a prompt to enter your new password.
  3. Закройте и снова откройте терминал.Close and reopen your terminal.

Чтобы запустить PostgreSQL с помощью оболочки psql , выполните следующие действия.To run PostgreSQL with psql shell:

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

После успешного входа в оболочку psql вы увидите, что ваша командная строка будет выглядеть следующим образом: postgres=#Once you have successfully entered the psql shell, you will see your command line change to look like this: postgres=#

Примечание

Кроме того, вы можете открыть оболочку psql, перейдя к пользователю postgres с помощью команды su - postgres, а затем введя команду psql.Alternatively, you can open the psql shell by switching to the postgres user with: su - postgres and then entering the command: psql.

Чтобы выйти из postgres = # ввод: \q или используйте сочетание клавиш, нажмите клавиши CTRL + D.To exit postgres=# enter: \q or use the shortcut key: Ctrl+D

Чтобы узнать, какие учетные записи пользователей были созданы в установке PostgreSQL, в терминале WSL введите psql -c "\du" или просто \du, если оболочка psql открыта.To see what user accounts have been created on your PostgreSQL installation, use from your WSL terminal: psql -c "\du" ...or just \du if you have the psql shell open. Эта команда будет отображать столбцы: имя пользователя учетной записи, список атрибутов ролей и член групп ролей.This command will display columns: Account User Name, List of Roles Attributes, and Member of role group(s). Чтобы вернуться в командную строку, введите: q.To exit back to the command line, enter: q.

Дополнительные сведения о работе с базами данных PostgreSQL см. в документации по PostgreSQL.For more about working with PostgreSQL databases, see the PostgreSQL docs.

Для работы с базами данных PostgreSQL в VS Code попробуйте использовать расширение PostgreSQL.To work with with PostgreSQL databases in VS Code, try the PostgreSQL extension.

Установка MongoDBInstall MongoDB

Чтобы установить MongoDB на WSL (Ubuntu 18,04), сделайте следующее:To install MongoDB on WSL (Ubuntu 18.04):

  1. Откройте терминал WSL (например, Ubuntu 18.04).Open your WSL terminal (ie. Ubuntu 18.04).
  2. Обновите пакеты Ubuntu: sudo apt updateUpdate your Ubuntu packages: sudo apt update
  3. После обновления пакетов установите MongoDB с помощью: sudo apt-get install mongodbOnce the packages have updated, install MongoDB with: sudo apt-get install mongodb
  4. Подтвердите установку и получите номер версии: mongod --versionConfirm installation and get the version number: mongod --version

После установки MongoDB следует знать 3 команды:There are 3 commands you need to know once MongoDB is installed:

  • sudo service mongodb status позволяет проверить состояние базы данных.sudo service mongodb status for checking the status of your database.
  • sudo service mongodb start позволяет запустить базу данных.sudo service mongodb start to start running your database.
  • sudo service mongodb stop позволяет завершить работу с базой данных.sudo service mongodb stop to stop running your database.

Примечание

Вы можете увидеть команду sudo systemctl status mongodb, используемую в учебниках или статьях.You might see the command sudo systemctl status mongodb used in tutorials or articles. Чтобы остаться облегченным, WSL не включает systemd (система управления службами в Linux).In order to remain lightweight, WSL does not include systemd (a service management system in Linux). Вместо этого он использует SysVinit для запуска служб на компьютере.Instead, it uses SysVinit to start services on your machine. Вы не должны заметить разницы, но если учебник рекомендует использовать sudo systemctl, используйте: sudo /etc/init.d/.You shouldn't notice a difference, but if a tutorial recommends using sudo systemctl, instead use: sudo /etc/init.d/. Например, sudo systemctl status mongodbдля WSL будет sudo /etc/inid.d/mongodb status... или вы также можете использовать sudo service mongodb status.For example, sudo systemctl status mongodb, for WSL would be sudo /etc/inid.d/mongodb status ...or you can also use sudo service mongodb status.

Чтобы запустить базу данных Mongo на локальном сервере, выполните следующие действия.To run your Mongo database in a local server:

  1. Проверьте состояние базы данных: sudo service mongodb status вы должны увидеть ответ [Fail], если вы еще не начали работу с базой данных.Check the status of your database: sudo service mongodb status You should see a [Fail] response, unless you've already started your database.

  2. Запустите базу данных. sudo service mongodb start теперь должен отобразиться ответ [ОК].Start your database: sudo service mongodb start You should now see an [OK] response.

  3. Проверьте, подключившись к серверу базы данных и выполнив команду диагностики: mongo --eval 'db.runCommand({ connectionStatus: 1 })' в результате будет выведена Текущая версия базы данных, адрес и порт сервера, а также выходные данные команды Status.Verify by connecting to the database server and running a diagnostic command: mongo --eval 'db.runCommand({ connectionStatus: 1 })' This will output the current database version, the server address and port, and the output of the status command. Значение 1 в поле "ОК" в ответе указывает на то, что сервер работает.A value of 1 for the "ok" field in the response indicates that the server is working.

  4. Чтобы предотвратить запуск службы MongoDB, введите: sudo service mongodb stopTo stop your MongoDB service from running, enter: sudo service mongodb stop

Примечание

MongoDB имеет несколько параметров по умолчанию, включая хранение данных в /data/db и выполнение на порте 27017.MongoDB has several default parameters, including storing data in /data/db and running on port 27017. Кроме того, mongod является управляющей программой (хост-процессом для базы данных), а mongo — оболочкой командной строки, которая подключается к конкретному экземпляру mongod.Also, mongod is the daemon (host process for the database) and mongo is the command-line shell that connects to a specific instance of mongod.

VS Code поддерживает работу с базами данных MongoDB с помощью расширения Azure CosmosDB, вы можете создавать, управлять базами данных MongoDB и выполнять запросы из них в VS Code.VS Code supports working with MongoDB databases via the Azure CosmosDB extension, you can create, manage and query MongoDB databases from within VS Code. Дополнительные сведения см. в VS Code документах: Работа с MongoDB.To learn more, visit the VS Code docs: Working with MongoDB.

Дополнительные сведения см. в документах MongoDB:Learn more in the MongoDB docs:

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

Чтобы установить SQL Server на WSL (Ubuntu 18,04), следуйте указаниям в этом кратком руководстве: установка SQL Server и создание базы данных на Ubuntu.To install SQL Server on WSL (Ubuntu 18.04), follow this quickstart: Install SQL Server and create a database on Ubuntu.

Для работы с Microsoft SQL Server базами данных в VS Code используйте расширение MSSQL.To work with Microsoft SQL Server databases in VS Code, try the MSSQL extension.

Установка SQLiteInstall SQLite

Установка SQLite в WSL (Ubuntu 18,04):To install SQLite on WSL (Ubuntu 18.04):

  1. Откройте терминал WSL (например, Ubuntu 18.04).Open your WSL terminal (ie. Ubuntu 18.04).
  2. Обновите пакеты Ubuntu: sudo apt updateUpdate your Ubuntu packages: sudo apt update
  3. После обновления пакетов установите SQLite3 с помощью: sudo apt install sqlite3Once the packages have updated, install SQLite3 with: sudo apt install sqlite3
  4. Подтвердите установку и получите номер версии: sqlite3 --versionConfirm installation and get the version number: sqlite3 --version

Чтобы создать тестовую базу данных с именем example. DB, введите: sqlite3 example.dbTo create a test database, called "example.db", enter: sqlite3 example.db

Чтобы просмотреть список баз данных SQLite, введите: .databasesTo see a list of your SQLite databases, enter: .databases

Чтобы просмотреть состояние базы данных, введите: .dbinfo ?DB?To see the status of your database, enter: .dbinfo ?DB?

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

Дополнительные сведения о работе с базой данных SQLite см. в документации по SQLite.For more information about working with a SQLite database, see the SQLite docs.

Для работы с базами данных SQLite в VS Code попробуйте расширение SQLite.To work with SQLite databases in VS Code, try the SQLite extension.

Установка RedisInstall Redis

Чтобы установить Redis на WSL (Ubuntu 18,04), сделайте следующее:To install Redis on WSL (Ubuntu 18.04):

  1. Откройте терминал WSL (например, Ubuntu 18.04).Open your WSL terminal (ie. Ubuntu 18.04).
  2. Обновите пакеты Ubuntu: sudo apt updateUpdate your Ubuntu packages: sudo apt update
  3. После обновления пакетов установите Redis с помощью: sudo apt install redis-serverOnce the packages have updated, install Redis with: sudo apt install redis-server
  4. Подтвердите установку и получите номер версии: redis-server --versionConfirm installation and get the version number: redis-server --version

Чтобы начать работу с сервером Redis, выполните следующие действия. sudo service redis-server startTo start running your Redis server: sudo service redis-server start

Проверьте, работает ли Redis (Redis-CLI — служебная программа командной строки для взаимодействия с Redis): redis-cli ping это должно вернуть ответ "теннис".Check to see if redis is working (redis-cli is the command line interface utility to talk with Redis): redis-cli ping this should return a reply of "PONG".

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

Дополнительные сведения о работе с базой данных Redis см. в документации по Redis.For more information about working with a Redis database, see the Redis docs.

Для работы с базами данных Redis в VS Code попробуйте использовать расширение Redis.To work with Redis databases in VS Code, try the Redis extension.

См. раздел службы запуск и настройка псевдонимов профилей.See services running and set up profile aliases

Чтобы просмотреть службы, которые в настоящее время выполняются в дистрибутиве WSL, введите: service --status-allTo see the services that you currently have running on your WSL distribution, enter: service --status-all

Вводить sudo service mongodb start или sudo service postgres start и sudo -u postgrest psql может быть утомительно.Typing out sudo service mongodb start or sudo service postgres start and sudo -u postgrest psql can get tedious. Однако, вы можете рассмотреть возможность установки псевдонимов в файле .profile на WSL, чтобы сделать эти команды более быстрыми в использовании и легкими в запоминании.However, you could consider setting up aliases in your .profile file on WSL to make these commands quicker to use and easier to remember.

Настройка собственного пользовательского псевдонима или ярлыка для выполнения этих команд:To set up your own custom alias, or shortcut, for executing these commands:

  1. Откройте терминал WSL и введите cd ~, чтобы убедиться, что вы находитесь в корневом каталоге.Open your WSL terminal and enter cd ~ to be sure you're in the root directory.

  2. Откройте файл .profile, управляющий настройками терминала, в текстовом редакторе терминала Nano: sudo nano .profile.Open the .profile file, which controls the settings for your terminal, with the terminal text editor, Nano: sudo nano .profile

  3. В нижней части файла (не меняйте настройки # set PATH) добавьте следующее:At the bottom of the file (don't change the # set PATH settings), add the following:

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

    Это позволит вам ввести start-pg для запуска службы postgresql и run-pg — для открытия оболочки psql.This will allow you to enter start-pg to start running the postgresql service and run-pg to open the psql shell. Вы можете изменить start-pg и run-pg на любые имена, просто следите за тем, чтобы не перезаписать команду, которую postgres уже использует!You can change start-pg and run-pg to whatever names you want, just be careful not to overwrite a command that postgres already uses!

  4. После добавления новых псевдонимов выйдите из текстового редактора Nano, используя Ctrl+X — выберите Y (Да) при запросе сохранения и Enter (имя файла останется .profile).Once you've added your new aliases, exit the Nano text editor using Ctrl+X -- select Y (Yes) when prompted to save and Enter (leaving the file name as .profile).

  5. Закройте и снова откройте терминал WSL, а затем попробуйте использовать свои новые команды ввода псевдонима.Close and re-open your WSL terminal, then try your new alias commands.

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