Můj CentOS box běží s jádrem 2.6. Dnes jsem jej chtěl upgradovat na nejnovější verzi 3.14. Také několik důležitých bezpečnostních softwarů nainstalovaných v krabici bylo starších verzí.
Vzhledem k tomu, že celkový upgrade by pomohl k lepšímu zabezpečení, rozhodl jsem se je upgradovat pomocí yum, což usnadňuje instalaci, aktualizaci, vyhledávání nebo odinstalaci softwarových balíčků v systému. mňam upgrade byl úspěšně dokončen, mezitím byla také MySQL upgradována na MySQL-5.5.37.
To může být dobrá zpráva, přesto jsem při spouštění serveru MySQL našel níže uvedenou chybu.
Je to kvůli souboru errmsg.sys byla starší verze, která nebyla aktualizována při upgradu 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]
Řešení:
1. Určete správnou verzi nainstalované MySQL pomocí níže uvedeného příkazu:
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 nainstalován
mysql-test.x86_64 5.5.37-1.el5.remi installed php-mysqlnd.x86_64 5.5.13-1.el5.remi installed
2. Na níže uvedené adrese URL vyhledejte odpovídající zdrojový soubor tar.gz pro verzi MySQL uvedenou výše. Stačí nahradit správnou verzi MySQL uvedenou výše a stáhnout ji.
http://mysql.llarian.net/Downloads/MySQL-5.5/
3. Rozbalte nově stažené MySQl pomocí níže uvedeného příkazu:
tar -zxf mysql-5.1.58.tar.gz
4. Cmake je předpokladem! Pokud není nainstalován, kompilace by se nezdařila. Nainstalujte tedy cmake pomocí níže uvedeného příkazu:
yum install cmake
5. Spuštěním autorun.sh vytvořte konfigurační soubor. Níže uvedený příkaz vytvoří konfigurační soubor v mysql-5.5.37 složka
mysql-5.5.37/BUILD/autorun.sh
6. Nyní nakonfigurujte a proveďte pomocí níže uvedeného příkazu:
mysql-5.5.37/configure
make
7. Zkopírujte nový soubor errmsg.sys z kompilovaného umístění do:/usr/share/mysql/english/errmsg.sys
cp mysql-5.5.37/sql/share/english/errmsg.sys /usr/share/mysql/english/errmsg.sys
8. Nyní spusťte MySQLD a neuvidíte žádnou chybu!
/etc/init.d/mysqld start
Pokud tento proces nefunguje, pak může být nejlepší možností odinstalovat a znovu nainstalovat MySQL (po zálohování všeho).