Category: MongoDB

 

How to run mongodb on linux,ubuntu as process

How to run mongodb on linux,ubuntu as process

Supposed that mongodb is installed and configured, and now you want to Start mongod as a Daemon:


ubuntu@ip-127-0-0-1:/var/lib/mongodb$ sudo mongod --fork --logpath /var/log/mongodb.log --dbpath /var/lib/mongodb
about to fork child process, waiting until server is ready for connections.
forked process: 21293
child process started successfully, parent exiting
ubuntu@ip-127-0-0-1:/var/lib/mongodb$ 

Now, how to test if mongodb has started really as daemon;


ubuntu@ip-127-0-0-1:/var/lib/mongodb$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
Server has startup warnings: 
2019-10-19T07:49:38.302+0000 I STORAGE  [initandlisten] 
2019-10-19T07:49:38.303+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2019-10-19T07:49:38.303+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] 
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] 
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] 
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] 
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-10-19T07:49:38.571+0000 I CONTROL  [initandlisten] 
> show dbs
admin      0.000GB
UKgoodbye  0.002GB
local      0.000GB
> 

Mongodb is ready!

Nginx configuration location on AWS ubuntu, /etc/nginx/nginx.conf

Nginx configuration location on AWS ubuntu, /etc/nginx/nginx.conf

Here an example of nginx.conf


user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
          ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

         gzip_vary on;
          gzip_proxied any;
         gzip_comp_level 9;
         gzip_buffers 16 8k;
         gzip_http_version 1.1;
         gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text$

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

It says that it include sites-enabled/*. cd /etc/nginx/sites-enabled/ to find out, www.ukgoodbye.co.uk

Content of the enabled site:


....
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
        # listen 80 default_server;
        # listen [::]:80 default_server;

        # SSL configuration
        #
        listen 443;
        listen [::]:443;

        ssl on;
        ssl_certificate /etc/nginx/ssl/ssl_bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/ukgoodbye_com.key;

        ssl_dhparam /etc/nginx/ssl/dhparam.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        #
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name www.ukgoodbye.co.uk;


        location / {
                #rewrite ^/ukgoodbye(.*) $1 break;
                #add_header "Access-Control-Allow-Origin" "*, *";
                proxy_pass http://127.0.0.1:1355;
        }
        location /ukgoodbye-services/ {
                rewrite ^/ukgoodbye-services(.*) $1 break;
                #add_header "Access-Control-Allow-Origin" "*, *";
                proxy_pass http://127.0.0.1:1337;
        }

#       location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
#               try_files $uri $uri/ =404;
#       }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
        #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
        listen 80;
        listen [::]:80;
        # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
        return 301 https://$host$request_uri;
        server_name www.ukgoodbye.co.uk;

#       root /var/www/example.com;
#       index index.html;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
}

mongodb won’t start after rebooting the server

mongodb won’t start after rebooting the server

Mongodb, Sails, angular and Nginx were running smoothly after rebooting system, that was on Ubuntu on AWS amazon.
1- Mongodb, trying to run mongo, here is the


ubuntu@ip-172-0-0-1:~$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
2019-10-17T07:20:34.919+0000 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2019-10-17T07:20:34.919+0000 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

Mongo won’t work unless you delete the mongod.lock, on
a) On windows it could be c:\data\db\monogod.lock
b) On Ubuntu(linux) is located on /var/lib/mongodb, you can check the path of mongo on file configuration mongod.conf:


...
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
  mmapv1:
    smallFiles: true
#  wiredTiger:
.... 

So to delete mongod.lock


ubuntu@ip-127-0-0-1:/var/lib/mongodb$ rm mongod.lock
rm: remove write-protected regular empty file 'mongod.lock'? 

After deleting the mongod.lock, mongo should be able to work again, you start it by
ubuntu@ip-127-0-0-1:/var/lib/mongodb$ service mongod start

Where the mongodb default database folder on linux, check the mongod.conf

Where the mongodb default database folder on linux, check the mongod.conf


cd /etc/mongod.conf
And it will say, Where and how to store data:
/var/lib/monogo

Example of monogo.conf default mongodb on linux(Ubuntu):


# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
  mmapv1:
    smallFiles: true
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:


On Windows: example c:\data\db