1, Check your MySQL is running or not.
From the command-line you can follow the below pasted command:
If it’s running the output should be like;
[[email protected] ~]# /etc/init.d/mysql status mysqld (pid 837) is running...
Okay, then we can move onto database and the user “roundcube”. The database and the user is “roundcube”. The password for the database user will be obtained from the file “/usr/local/cpanel/base/3rdparty/roundcube/config/db.inc.php” in a cPanel server.
# grep roundcube /usr/local/cpanel/base/3rdparty/roundcube/config/db.inc.php $rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcube'; // postgres example: 'pgsql://roundcube:[email protected]/roundcubemail'; Or # grep roundcube /usr/local/cpanel/base/3rdparty/roundcube/config/config.inc.php
2, Check the database connectivity from command line
Yes, we need to verify whether the db user and password is working. Please use the following command:
# mysql -u roundcube -p
If you are able to get in, check the database is listing under the user.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | roundcube | +--------------------+ 2 rows in set (0.09 sec)
If the user password is not working that’s reason for this db error. Please reset the user password.
3, Check the tables are existing under the database;
Switch to database “roundcube”;
mysql> use roundcube;
mysql> show tables; +---------------------+ | Tables_in_roundcube | +---------------------+ | cache | | cache_index | | cache_messages | | cache_thread | | contactgroupmembers | | contactgroups | | contacts | | cp_schema_version | | dictionary | | identities | | searches | | session | | system | | users | +---------------------+ 14 rows in set (0.00 sec)
If all tables exists then go ahead and repair the database. Please follow the command to repair a db.
# mysqlcheck -r roundcube
If database or tables are missing, you can rebuild the roundcube from commanline.
I hope this article should be helpful for you, if you are managing a medium or large size infra in AWS platform.
There should be a lot of services or instances that we can shutdown for many hours in a day. Consider your production infra contains 10 large type EC2 instances and your organisation have 2 QA and 1 test environment of exactly same number of instances and services like your running production infra.
Command to rebuild RoundCube:
FYI, the force rebuild will results in missing of address book, signatures etc
Otherwise, if you have a backup you can try a restoration instead-of rebuild.
4, RoundCube batabase, user, tables and password all are working. But I have saved address book and others in email accounts, can I rebuild the roundcube safely?
If all working, please take a backup of database then drop it before rebuilding the roundcube.
4.1 Backing up db:
# mysqldump roundcube > roundcube.sql
4.2 Dropping db:
DROP DATABASE roundcube;
Run above command in MySQL prompt.
# mysql roundcube < roundcube.sql