My CentOS box runs with kernel 2.6. Today, I wanted to upgrade it to the recent version 3.14. Also, few important security related software installed on the box were of older versions.
Thinking a total upgrade would help in better security, I choose to upgrade them using yum which facilitates easy Install, Update, Search or Uninstall software packages on a system. The yum upgraded was successfully completed, meanwhile MySQL also got upgraded to MySQL-5.5.37.
That can be a good news, still I found the below error while starting the MySQL server.
This is because of the file errmsg.sys was of older version which was not updated when upgrading the MySQL!
140604 11:28:08 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys' had only 481 error messages, but it should contain at least 728 error messages. Check that the above file is the right version for this program! 140604 11:28:08 [Note] Plugin 'FEDERATED' is disabled. 140604 11:28:08 InnoDB: The InnoDB memory heap is disabled 140604 11:28:08 InnoDB: Mutexes and rw_locks use GCC atomic builtins 140604 11:28:08 InnoDB: Compressed tables use zlib 1.2.3 140604 11:28:08 InnoDB: Using Linux native AIO 140604 11:28:08 InnoDB: Initializing buffer pool, size = 128.0M 140604 11:28:08 InnoDB: Completed initialization of buffer pool 140604 11:28:08 InnoDB: highest supported file format is Barracuda. 140604 11:28:08 InnoDB: Waiting for the background threads to start 140604 11:28:09 InnoDB: 5.5.37 started; log sequence number 1588761 /usr/libexec/mysqld: Too many arguments (first extra is 'start'). Use --verbose --help to get a list of available options 140604 11:28:09 [ERROR] Aborting 140604 11:28:09 InnoDB: Starting shutdown... 140604 11:28:10 InnoDB: Shutdown completed; log sequence number 1588761 140604 11:28:10 [Note]
1. Determine the correct version of MySQL installed using the below command:
Wed Jun 04>$yum list installed | grep mysql
libdbi-dbd-mysql.x86_64 0.8.1a-1.2.2 installed mysql.i386 5.0.95-5.el5_9 installed mysql.x86_64 5.5.37-1.el5.remi installed mysql-bench.x86_64 5.5.37-1.el5.remi installed mysql-connector-odbc.x86_64 3.51.26r1127-2.el5 installed mysql-devel.i386 5.0.95-5.el5_9 installed mysql-devel.x86_64 5.5.37-1.el5.remi installed mysql-libs.x86_64 5.5.37-1.el5.remi installed
mysql-server.x86_64 5.5.37-1.el5.remi installed
mysql-test.x86_64 5.5.37-1.el5.remi installed php-mysqlnd.x86_64 5.5.13-1.el5.remi installed
2. Find the corresponding tar.gz source file for the version of MySQL listed above from the below URL . Just replace the correct MySQL version listed above and download it.
3. Extract the newly downloaded MySQl with the below command:
tar -zxf mysql-5.1.58.tar.gz
4. Cmake is a pre-requisite! If not installed, then the compilation would fail. So install cmake using the below command:
yum install cmake
5. Execute autorun.sh to create configure file. The below command creates configure file in mysql-5.5.37 folder
6. Now configure and make with the below command:
7. Copy the new errmsg.sys file from the compiled location to : /usr/share/mysql/english/errmsg.sys
cp mysql-5.5.37/sql/share/english/errmsg.sys /usr/share/mysql/english/errmsg.sys
8. Now start MySQLD and you will see no error!
If this process does not work then the best option may be to uninstall and reinstall MySQL (after backing up everything).