How to Configure D-link 2750u with BSNL

My previous wifi connector was having issues and it was getting disconnected multiple times and it was really frustrating so I thought to change my wifi router. Changing wifi router was not cakewalk as I though it would be. Please find below steps to be followed for configuring D-Link 2750 with BSNL.


Connect your wifi router with LAN cable. Use LAN 1 to connect to your laptop and type following ip in browser window.
It will open following window


Login using default username and password. Default username and password are as below:
username: admin
password: admin
Once your login is completed, you will find following screen.


Click on setup vizard and it will show you steps to be followed for the set up

Do not change anything on 1st screen, just click next:


ISP ( in this case BSNL) specific changes
1. For BSNL VCI its 32. You can enter these values. If you want to cross check these values or you are using some other ISP, click on Scan and it will provide values for VPI and VCI.
2. In the below box use the user id and password provided by your ISP.


Select required security level. If you selecet none, you will be vulnerable to eavesdropping.


On 4th screen you can reset your admin password but its not mandatory and you can skip it


On 5th screen, it will show all settings before applying these. You can go back and change the settings if required or click on apply and go ahead with it.

Just restart your router and connect to your wifi and you are all set. If you encountered any error, please let me know.

Checking and upgrading Ubuntu 16.04 & Kernel version

Please follow below mentioned steps to upgrade Ubuntu OS and kernels.

Step#1 Check current Ubuntu OS and Kernel version

$ lsb_release -a
No LSB modules are available.  
Distributor ID:    Ubuntu  
Description:    Ubuntu 16.04.1 LTS  
Release:    16.04  
Codename:    xenial

Check current Ubuntu kernel version

$ uname -r 

Step#2 Update Ubuntu OS using following commands

$sudo apt-get update
$sudo apt-get dist-upgrade

This command will take some time to execute as it will download updated packages and will install it. Once this is completed, please execute following command to check the updated version of Ubuntu OS version

$ lsb_release -a
No LSB modules are available.  
Distributor ID:    Ubuntu  
Description:    Ubuntu 16.04.2 LTS  
Release:    16.04  
Codename:    xenial  

Ubuntu version is updated from 16.04.01 to 16.04.02. Now lets check current Ubuntu kernel version

$ uname -r 

If you have noticed, OS got updated but kernel did not. Ubuntu 16.04.2 installs a 4.8 kernel for new installations. For systems which are upgraded to 16.04.2 the current kernel series is maintained unchanged. If you have upgraded your system to 16.04.2 and want to have the new kernel, then you must opt in by explicitly installing the hardware enablement stack:
Step#3 Run following command to get Kernel updated

$ sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04 

If you check Ubuntu Kernel status after completion of above install, you will get following output.

$ uname -r 

Confused, as kernel did not get updated ? Well, you need to shut down and restart OS and then run the same command.

$ uname -r

6.04.x Ubuntu Kernel Support Schedule is as below

Please let me know if you run into any issues.

How to Add Custom Fonts to GIMP on ubuntu

GIMP is usefull tool but default fonts are not sufficient for your creativity but this is not a limiting factory, you can add any opensource font to GIMP very easily.


Download required font from website. one of the best site to get fonts is


Go to Edit–>Preference–>Folders–>Fonts to identify font folder.

You would see two folders

Add fonts to either of folder


Once you have copied font files, re-open the GIMP and your fonts should be available.

Please let me know if you run into any issues.

MySQL Quick Reference

Here is the list of commands for MySQL that will be evry handy while using MySQL. Over the period of time, you will remember these commands but to get started, you can use this as a cheat sheet for MySQL commands.

Connecting to MySQL

  • Check status of MySQL
$ systemctl status mysql
  • Start and Stop MySQL Server using
$ sudo systemctl start mysql
$ sudo systemctl stop mysql
  • Start MySQL without admin privileges
sudo mysqld_safe --skip-grant-tables --skip-networking &  
  • After installation defact userid and password can be viewed by using following command
sudo cat /etc/mysql/debian.cnf

host = localhost
user = debian-sys-maint
password = XXX
socket = /var/run/mysqld/mysqld.sock
host = localhost
user = debian-sys-maint
password = XXX
socket = /var/run/mysqld/mysqld.sock
  • Login to MySQL Database from command line. Once authentication is completed successfully, mysql> prompt will appear.


$ mysql --host=localhost --user=USERNAME --password PASSWORD

If you want to connect to any remote MySQL server, replace ‘localhost’ with remote db address name and add port parameter.

$ mysql --port=13306 --user=USERNAME --password PASSWORD

Commands to be used in mysql> prompt:

Use following command to get list of databases

mysql> show databases;

Use following command to create database

mysql> create database <newDatabaseName>;

Create new user

mysql>CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

grant access to newly created user

mysql> grant create, delete, insert, select, update, alter,references ON <databaseName>.* TO 'usernmae'@'localhost';

Use following command to delete or drop  database

mysql> drop database DatabaseName;

Use following command to get list of users

mysql> SELECT User FROM mysql.user;


To check the access level of the user

mysql>SHOW GRANTS FOR 'root'@'localhost';

To use specific database name use following command

mysql>use DBNAME

To export database

$mysqldump -u [username] -p [databaseName] > [databaseName].sql

To import database

$mysql -u [username] -p newdatabase < [databaseName].sql


How to migrate Ghost blog from SQLite3 To MySQL

Migrating Ghost blog from SQLite3 to MySQL is fairly simple process. You need to export your posts, configure MySQL for Ghost and lastly, you need to import previously exported posts and you are done. Please follow below mentioned steps.

Step#1: Exporting the Ghost Blog posts.
Login to ghost blog as admin using following link OR

Go to labs option and clock on export.

It will create a json file. Keep this file handy as we will import same file after we have configured MySQL.

Step#2: Install MySQL
Please ensure MySQL is installed on your machine. You can follow how to install MySQL on ubuntu.

Step#3: create user for ghost blog
Login to MySQL as root using following command. It will ask for root password.

$ mysql -u root -p

Create database as well as user by using following commands

mysql> create database ghost;  
mysql> CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'password';  

Now add grant user to database

mysql> grant create, delete, insert, select, update, alter,references ON ghost.* TO 'ghost'@'localhost';  

and now flush the newly added access.

mysql> flush privileges;  

Step#4: edit config file to use MySQL
Configure to use production database as mentioned in this post.
Your final config file snippet is as below:

        database: {
            client: 'mysql',
            connection: {
                host: 'localhost',
                user: 'username',
                password: 'password',
                database: 'ghost',
                charset: 'utf8'
            debug: true

Step#4: Now run your blog in production mode as mentioned in post using ghost in production and development mode.

$ npm start --production

Step#5 Importing previously exported blog dump.
Again Login to ghost blog as admin using following link OR

Go to labs option and clock on import and use the previously exported file.

This worked well for me, please let me know if you run into any issues…

Having seen that, I would recommend using SQLite3 as a database someone has said, don’t fix it until its broken and considering SQLite can handle 100k hits per days (which cover most of the websites) there is no need to create extra work for yourself by moving database to MySQL. However you must note that, GhostPro uses MySQL database and ghost officially has dropped support for PostgreSQL.

Please refer to SQLite documentation for further clarification.

Configure Ghost to Run in Either Development or Production

Ghost blog can be run in multiple modes, two of the most useful modes are development or production (unless you are core ghost developer, you would not be using testing mode).

Each of these modes can be configured differently. In fact, you can use different databases in two different modes. Most often, SQLite3 is used in development mode but MySQL is used in production.

To start Ghost blog in development mode, you can start ghost application similar to normal Node.js webapp by using following command.

$ npm start

To start Ghost blog in production mode, use following command. Please notice the additional parameter passed.

$ npm start --production

If you are using PM2 in your production server, you can start Ghost blog in production mode by using following command.

$ NODE_ENV=production pm2 start index.js --name "Ghost"

Configure Ghost Blog using MySQL

By default Ghost uses sqlite3 database. If you want to use MySQL, this can be done by changing configuration config.js. Please follow changes suggested in below post to use MySQL in Ghost blog.

Ghost blog configuration is as below:

        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            debug: false

This needs to be changed to following

        database: {
            client: 'mysql',
            connection: {
                host: 'localhost',
                user: 'username',
                password: 'password',
                database: 'ghost',
                charset: 'utf8'
            debug: true

You can make this change in production section of configuration and keep development section as is. You need to ensure that you start Ghost server in production by following command

npm start --production  

Using MySQL workbench

MySQL Workbench provides DBAs and developers an integrated tools environment for:

  • Database Design & Modeling
  • SQL Development
  • Database Administration
  • Database Migration
  • Installation:

Download installation package as per our OS from following link

and follow normal installation process.

Alternative way.
If you are getting any error while install by first method, you can use following commands to get it installed

sudo apt-get install mysql-workbench  

Once installation is done, you will find MySQL Workbench in your list of applications.

When you open MySQL workbench, following screen will appear.

After you connect to local server, you will see following window.

Install MySQL server ubuntu

MySQL is an open-source relational database management system (RDBMS). I had always prepferred PostgreSQL but there are some reasons you can not avoid MySQL (more on this later). Here are the following steps I followed to get started with MySQL on ubuntu.

Download deb package that handles configuring and installing the official MySQL software repositories. You can download this package manually from following link

Alternatively, you can download this using curl

curl -OL  

We need to pass two command line flags to curl. -O instructs curl to output to a file instead of standard output. The L flag makes curl follow HTTP redirects, necessary in this case because the address we copied actually redirects us to another location before the file downloads.

Install this file using following command

sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb  

You will get following window. Select ok. First and second options are already selected.

The package will now finish adding the repository. Refresh your apt package cache to make the new software packages available:

sudo apt-get update  

Step#3 Install MySQL
Now you can install MySQL using following command.

sudo apt-get install mysql-server  

It will ask for confirmation, Type y then ENTER.
You will be asked to set a root password during the configuration phase of the installation. Be sure to choose a secure password, enter it twice, and the process will complete.

During installation, you will be prompted for root password.

MySQL should be installed and running now. You can check the status MySQL using systemctl command:

systemctl status mysql  

Step#4 Securing MySQL (Optional)
You can secure your MySQL database using following command

$ mysql_secure_installation

If you runinto any issues try reinstalling MySQL.

$ sudo apt-get remove -y mysql-*
$ sudo apt-get purge -y mysql-*
$ sudo apt-get purge mysql-server mysql-client 
$ mysql-common mysql-server-5.7
$ sudo apt-get autoclean
$ sudo apt-get update && sudo apt-get upgrade

once done install MySQL using following command

$ sudo apt-get install mysql-server-5.7

Please note suffix -5.7 at the end. I am not sure why but it works with this prefix.