How is my MongoDB database able to work without starting it - node.js

I'm using MongoDB, Node.js and Ubuntu 16.04 OS.
I set up MongoDB database from mongo CLI. I also communicated with it using node.js's mongodb library.
I thought I should start the database first (and start listening on the port) with mongod command.
But now I didn't start the database with mongod and still my communication from node.js towards database works fine.
Should mongod be run prior to communication with database, or is mongod process still alive from restart (I cannot find it listed in processes), or maybe my node.js code stores data in local variables that I haven't notice?

check on your ubuntu:
ps aux | grep mongod
if you see a process then it's running.
You can also write: top
With top you will see the current status of your system along with all the processes running.
With ps au you only see all process that are not attached to your TTY

Related

Starting MongoDB Replica Set

So, I was making an app that needs to use MongoDB transactions. But the Mongoose documentation told me that "MongoDB currently only supports transactions on replica sets, not standalone servers." So I thought I basically need to switch my Standalone MongoDB instance to Replica Set (whatever that means).
The MongoDB documentation gave me the instruction of how to do this with a few steps:
Shutdown the Standalone MongoDB instance
Restart the instance using the --replSet option
mongod --port 27017 --dbpath /var/lib/mongodb --replSet rs0 --bind_ip localhost
Connect the Mongo Shell
Call rs.initiate() inside the Shell
I'm stuck at step 2. All I know, when you want to start using MongoDB, you have to start its daemon first, using sudo systemctl start mongod, and then start using it by connecting your app. but that step told me to use mongod command to start the Mongod daemon, instead of systemctl. I tried the command but got the following error:
DBException in initAndListen, terminating","attr":{"error":"IllegalOperation: Attempted to create a lock file on a read-only directory: /var/lib/mongodb"}}
At first, I thought it was some kind of a privilege issue, so I ran it again with sudo but then it ended up destroying my entire database and prevented me from starting the MongoDB the "normal way" with giving me errors that I cannot remember.
I just reinstalled the whole MongoDB to get it back to work fine. Now I'm at the same place as yesterday, unable to convert to replica set, only now my entire database is gone. What do I do to enable it?
When running the mongod as a service, use /etc/monogd.conf to set the configuration. Note that the location or name of this file might have been changed in the mongod.service file in your system.
See replication options for how to set that in the file.

Can't kill Mongodb server from outside the running terminal

Beginner alert! I'm using express.js with mongodb and I set up a mongodb server in a terminal window through
mongod -dbpath *path name*
I accidentally closed the text editor without killing the terminal window that had the server running, so when I tried to set up a new server somewhere else it said that there was already a server running and wouldn't let me start another. I can't figure out how to close the last server because I can't go back to the terminal that it was running from and kill the terminal with control+c.
Is there a way to kill all mongodb servers from outside the terminal window that it's running?
Try this command
mongod --dbpath /path/to/your/db --shutdown
You can follow this official page for more info -
https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/

MongoDB stuck on clientcursormon (waiting for connections on port 27017)

After simply installing MongoDB and creating \data\db within the MongoDB folder, I proceeded to run mongod.exe --dbpath C:\MongoDB\data\db. It runs a bunch of initandlisten code and then when it waits for connections on port 27017 it hangs and writes out mem res:47 virt:171 mapped:80 connections:0. I am very new to Mongo and haven't found a definitive answer on why this is hanging and how to fix it.
If you want to run the mongod.exe process as a service under Windows (to avoid it taking up a command prompt) you should following these directions for MongoDB 2.6.0 (2.6.0 has a bug with the normal approach to configuring MongoDB as a service).
There is a known issue for MongoDB 2.6.0, SERVER-13515, which prevents
the use of the instructions in this section. For MongoDB 2.6.0, use
Manually Create a Windows Service for MongoDB to create a Windows
Service for MongoDB instead.
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#manually-create-windows-service
For MongoDB versions 2.6.1 and later follow the normal directions:
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb
Mongo waiting on 27017 even after reinstall
The waiting for connections message in the console output indicates that the mongod.exe process is running successfully.
After you install MongoDB, you need to connect to MongoDB through mongo.exe shell using another command prompt.
As soon as you are done with that, the waiting message in first console would change to connection accepted.

Node.js on Amazon EC2 faster development, have to kill PID everytime i change something

i am developing on a amazon EC2 server, running node.js with express.
I run the server by doing a sudo node server.js and its fune, i can see the requests coming in etc. But when i change something and reupload, a send a ctrl+Z a SIGTERM.
This gives me back the session, but it does not completly shut down the server, when i try to run it again by doing sudo node server.js it tells me the port is in use, so i have to do a
ps aux | grep node
Get process id and
kill -9 PRCOCESS_ID
This gets quite annoying in the long run when developing. Any faster way?
Try nodemon: it will automatically restart the server after changes. https://github.com/remy/nodemon
I picked up on that from this Medium post, it has some other good Node tips in it.

postgresql commands not being executed

I downloaded postgresql-9.1.
but when I execute the command in terminal:
$ createdb mydb
I get the following message:
createdb: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
please tell me how to sort this problem.I have even tried to uninstall and then reinstall it. I am trying to run this on linux mint 15 (cinnamon).
Use ps to see if the postgresql process is actually running. If not, start it (service postgresql start). Normally should start up itself on boot after installation but who knows. Also, some error may prevent it from starting on boot.
If postgresql is running, then you may need to edit pg_hba.conf in the data directory. Again, normally the database should listen for local connections by default but who knows.

Resources