WSL2 ubuntu Mongod продолжает менять порты всякий раз, когда я запускаю локальный сервер - PullRequest
0 голосов
/ 08 мая 2020

Я перешел по этой ссылке, чтобы настроить mongodb на ubuntu wsl, и это вроде сработало https://github.com/michaeltreat/Windows-Subsystem-For-Linux-Setup-Guide/blob/master/readmes/installs/MongoDB.md

Однако всякий раз, когда я использую команду sudo mongod --dbpath ~/data/db

Он откроет сервер Mongod локально и отобразит это


    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten] allocator: tcmalloc
    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten] modules: none
    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten] build environment:
    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten]     distmod: ubuntu1604
    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten]     distarch: x86_64
    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten]     target_arch: x86_64
    2020-05-07T14:50:56.880-0700 I CONTROL  [initandlisten] options: { storage: { dbPath: "/home/misterjoe/data/db" } }
    2020-05-07T14:50:56.880-0700 I -        [initandlisten] Detected data files in /home/misterjoe/data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2020-05-07T14:50:56.880-0700 I STORAGE  [initandlisten]
    2020-05-07T14:50:56.880-0700 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
    2020-05-07T14:50:56.880-0700 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
    2020-05-07T14:50:56.880-0700 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=5840M,cache_overflow=(file_max=0M),session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
    2020-05-07T14:50:57.360-0700 I STORAGE  [initandlisten] WiredTiger message [1588888257:360834][18606:0x7f3480c394c0], txn-recover: Main recovery loop: starting at 6/13440
    2020-05-07T14:50:57.409-0700 I STORAGE  [initandlisten] WiredTiger message [1588888257:409482][18606:0x7f3480c394c0], txn-recover: Recovering log 6 through 7
    2020-05-07T14:50:57.441-0700 I STORAGE  [initandlisten] WiredTiger message [1588888257:441849][18606:0x7f3480c394c0], txn-recover: Recovering log 7 through 7
    2020-05-07T14:50:57.467-0700 I STORAGE  [initandlisten] WiredTiger message [1588888257:467231][18606:0x7f3480c394c0], txn-recover: Set global recovery timestamp: 0
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten]
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten]
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten]
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten]
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2020-05-07T14:50:57.486-0700 I CONTROL  [initandlisten]
    2020-05-07T14:50:57.488-0700 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/home/misterjoe/data/db/diagnostic.data'
    2020-05-07T14:50:57.489-0700 I NETWORK  [initandlisten] listening via socket bound to 127.0.0.1
    2020-05-07T14:50:57.489-0700 I NETWORK  [initandlisten] listening via socket bound to /tmp/mongodb-27017.sock
    2020-05-07T14:50:57.489-0700 I NETWORK  [initandlisten] waiting for connections on port 27017

Затем, если я запущу приложение с базой данных mon go, я получу это

2020-05-07T14:53:19.392-0700 I NETWORK  [listener] connection accepted from 127.0.0.1:60332 #1 (1 connection now open)
2020-05-07T14:53:19.395-0700 I NETWORK  [conn1] received client metadata from 127.0.0.1:60332 conn1: { driver: { name: "nodejs", version: "3.5.5" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "4.19.84-microsoft-standard" }, platform: "'Node.js v13.10.1, LE (legacy)" }

Я пытаюсь сохранить его на том же порту, поэтому я могу использовать компас mongodb и получить его go на определенный db по моему выбору. Как RedditClone или база данных todoApp. Однако, если я ввожу этот IP-адрес, он не существует, и единственный способ увидеть что-либо из этой базы данных - использовать .find ({}) в javascript. Пожалуйста, помогите: (

1 Ответ

0 голосов
/ 08 мая 2020

Какова ваша настоящая проблема? Все в ваших журналах показывает, что вы настроили сервер и можете успешно подключиться к нему (со своего локального компьютера). Не похоже, что Compass предоставляет способ установить базу данных по умолчанию, как в командной строке оболочки mon go. Если вы можете просмотреть доступные базы данных или создать новую базу данных в Compass, значит, вы подключились к серверу.

2020-05-07T14:50:57.489-0700 I NETWORK  [initandlisten] waiting for connections on port 27017

Эта строка указывает, что вы запустили сервер и он прослушивает localhost: 27017

2020-05-07T14:53:19.392-0700 I NETWORK  [listener] connection accepted from 127.0.0.1:60332 #1 (1 connection now open)

Эта строка указывает на то, что новый клиент успешно открыл соединение с этим сервером (в вашем случае размещенным на порту 27017) с порта 60332.

Если вы запустите оболочку mon go, вы будете увидеть в журналах открытие другого соединения с сервером. Каждый клиент (в вашем случае это звучит как Compass) будет работать на порту Dynami c, поэтому вы можете запускать несколько клиентов одновременно. Вы не подключаетесь к клиентским портам, только к серверу. Порт клиента сообщает серверу, на какой порт возвращать результаты.

База данных, указанная в URL-адресе, является базой данных аутентификации, и, поскольку у вас не включена аутентификация, она игнорируется. Чтобы процитировать документы :

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

...

defaultauthdb

Необязательно. База данных аутентификации, используемая, если строка подключения включает имя пользователя: пароль @ учетные данные аутентификации, но параметр authSource не указан.

Если и authSource, и defaultauthdb не указаны, клиент попытается аутентифицировать указанного пользователя в базе данных администратора .

...