Drupal8: Add class to body tag

Here is the solution for adding our custom class to body tag using preprocess_html() function.

function hook_preprocess_html(&$variables) {
$variables[‘attributes’][‘class’][] = ‘class-name’;

If you want to add class for all node of specify content type, you can do like below

function hook_preprocess_html(&$variables) {
if ($node = \Drupal::request()->attributes->get(‘node’)) {
if($node->getType() == ‘content_type_name’) {
$variables[‘attributes’][‘class’][] = ‘class-name’;

Hope this will helpful to you…


Too many connections mysql

Some days before, after reached my office, i tried to access my web application, its show me a error message “Too many connections“, so I immediately logged in mysql server and checked the mysql service, it shows me “Running…” and then i connect mysql using

“mysql -u root -p”

its connected successfully. And then i checked current processlist using the below command,

“Show processlist”

its shows me around 370 queries waiting in the queue which is more than max_connections. I had bad memory to remember everything, i just forget what maximum connection i set to this variable. To find this i edit the my.cnf file and it was 360. Actually this max_connections is a system variable and its default value is 151 which provides better performance. For my application, 151 is not enough, so we set to 360. But on that day we didn’t except this will go more than 360 and mysqld always support max_connection+1(super user). So that when the situation like this comes, we can easily solve the issue or kill the process which are waiting in the queue using the super user account.

When i try to find the number of users logged-in in the site using query, the last connection which i have used(super user account) get hanged and then i couldn’t able to connect mysql. SO now there is no other way for me to connect mysql. i need to wait for the queue to process. I waited for some 30 to 45 minutes but the queue is not processing…so finally i restarted the mysql service and all the queries in the queue get killed and then i able to logged into my application.

The bad thing is we couldn’t able to trace out the issue why this happened? There is no traffic to site and all the servers are very cool. This is one more very good challenge for me after i come back to office from weekend. I succeeded without knowing the root cause of the issue. But after many hours, we found its because of we took DB Dump in the morning without putting the site offline. Mysqldump will lock all the tables while running and queries that request to the server put in the queue and thats the reason why we got this too many connections.

So whenever you taking mysqldump, please put your site down and then take mysqldump. This will avoid these type of issues in feature. This is very good learning for me.

How to register for Tamilnadu electricity board online services

It is very to easy to register your EB Account in online. Please follow the below steps to register it…

If you don’t have account previously, then follow the below steps,

  1. Go to https://www.tnebnet.org/awp/userRegister?execution=e1s1
  2. Clicking the Select button to find your Region
  3. Find your Region and click on select button.
  4. Now Enter your consumer number, you can get this number in your EB card at right side top(Ex: xxx-xxx-xxx). Here enter these number without hyphen(-)
  5. Click the Check Details button
  6. Once the details came, it will ask you confirmation and click the confirm button to proceed further.
  7. Now fill your details and click the Register button and it will send you the confirmation email to your registered email ID.
  8. Go to registered email id and click the confirmation link,
  9. Now login into site with registered account and password.
  10. You will find the EB Account that you registered.

You can also register more than one EB account, by clicking the Add Account



mysql not starting after deleting the database from the mysql datadirectory

Few days back i have mistakenly deleted one database folder directly from the mysql data directory but still the site was working fine. I just wondering how its working? 

So i restarted the mysql service. It stopped but didn’t start and getting below error in the log file

[root@localhost html]# tail -f /var/log/mysqld.log

InnoDB: Error: log file ./ib_logfile0 is of different size 0 84992 bytes

InnoDB: than specified in the .cnf file 0 5242880 bytes!

131001 17:54:45 [ERROR] Plugin ‘InnoDB’ init function returned error.

131001 17:54:45 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.

131001 17:54:45 [ERROR] Unknown/unsupported storage engine: InnoDB

131001 17:54:45 [ERROR] Aborting

131001 17:54:45 [Note] /usr/libexec/mysqld: Shutdown complete

131001 17:54:45 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

As usual i started searching google and didn’t find any solution and final got one solution. It’s to delete the ib_logfile0, and i deleted it and trying to start the mysql service and it start working  by recreating this file automatically…

What i understand from this, if you going to re-install the mysql or wamp server and to take backup of these databases, you have to follow below instructions,

  1. First stop the mysql service
  2. Copy the database which you need to have backup from the mysql data directory 
  3. Re-install / Install either Mysql or Wamp Server
  4. Stop the mysql service
  5. Paste the database backup in the mysql data directory which you have taken previously
  6. Start the mysql service

This will keep the old database backup easily without any problem and this will avoid importing the database again. May be imporing small database is not a problem, but thing when you have some 1GB or @ GB size of db, then it will take more time to import the database. Following the above steps, will save your time.

The site is currently not available due to technical problems

Site off-line

The site is currently not available due to technical problems. Please try again later. Thank you for your understanding.

If you are the maintainer of this site, please check your database settings in the settings.php file and ensure that your hosting provider’s database server is running. For more help, see the handbook, or contact your hosting provider.

There are two things you need to check.

1. Is mysqli is installed or not?

2. Is server able to connect database?

Is mysqli installed or not:

Check info.php file is mysqli is listed in this page, if not then your server will support only mysql not mysqli. If your host doesn’t have mysqli installed, you can it change to use mysql. (MySQLi stands for MySQL Improved.)

Open settings.php change $db_url from mysqli to mysql (settings usually in /sites/default-folder in your drupal installation).

$db_url = ‘mysqli://user:password@hostname/table’;

$db_url = ‘mysql://user:password@hostname/table’;
This means that you can either install MySQLi with your PHP install OR you can simply make the changes to your settings.php file as detailed above.

 Is server able to connect database?

Check whether you have passed right username, password and database name and also check whether you have given full permission to access the database from the server.

Hope this will be useful for those having similar problems.

« Older entries