Upgrade MySQL5.1 to 5.5.36 and centosmysql5.1 in CentOS
Record the process of upgrading MySQL5.1 to 5.5.36 in the CentOS 6.4 environment. I hope you can have a reference.
1. For the sake of security, the original data must be backed up first.
2. Uninstall the original MySQL, stop the original MySQL service, and then find/-name mysql
[root@linuxidc /]# find / -name mysql/var/lib/mysql/var/lib/mysql/mysql/usr/lib64/mysql
And remove the service.
[root@linuxidc /]# rm -rf /var/lib/mysql[root@linuxidc /]# rm -rf /var/lib/mysql[root@linuxidc /]# rm -rf /usr/lib64/mysql
3. Install cmake
[root@linuxidc download]# wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz[root@linuxidc download]# tarx zvfc cmake-2.8.12.2.tar.gz[root@linuxidc download]# cd cmake-2.8.12.2[root@linuxidc cmake-2.8.12.2]# ./configure[root@linuxidc cmake-2.8.12.2]# make && make install
4. Download and install MySQL5.5.36
[root@linuxidc download]# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.36.tar.gz[root@linuxidc download]# tar xzvf mysql-5.5.36.tar.gz[root@linuxidc download]# cd mysql-5.5.36[root@linuxidc mysql-5.5.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/home/mysql[root@linuxidc mysql-5.5.36]# make && make install
An error occurred during the cmake process, prompting cocould NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
Run the following code. After the execution, continue with cmake and then make & make install.
[Root @ localhost mysql-5.5.36] # rm CMakeCache.txt
[Root @ localhost mysql-5.5.36] # yum install ncurses-devel
5. Copy the my. cnf file backed up to/etc/my. cnf.
MySQL reads/etc/my. cnf/etc/mysql/my. cnf/usr/local/mysql/etc/my. cnf/. my. cnf. The file on the left has the highest priority.
6. After The configuration is complete, we start mysql and find a problem. Start MySQL prompt: The server quit without updating PID file (...) Failed
View the log file address/var/log/mysqld. log set in the my. cnf file. The error message is as follows:
170715 12:31:36 mysqld_safe mysqld from pid file/var/lib/mysql/linuxidc. pid ended
170715 12:57:48 mysqld_safe Starting mysqld daemon with databases from/home/mysql
170715 12:57:48 InnoDB: The InnoDB memory heap is disabled
170715 12:57:48 InnoDB: Mutexes and rw_locks use GCC atomic builtins
170715 12:57:48 InnoDB: Compressed tables use zlib 1.2.3
170715 12:57:48 InnoDB: Initializing buffer pool, size = 128.0 M
170715 12:57:48 InnoDB: Completed initialization of buffer pool
170715 12:57:48 InnoDB: highest supported file format is Barracuda.
170715 12:57:48 InnoDB: Waiting for the background threads to start
170715 12:57:49 InnoDB: 5.5.36 started; log sequence number 2645823
170715 12:57:49 [ERROR]/usr/local/mysql/bin/mysqld: unknown variable 'default-character-set = utf8'
170715 12:57:49 [ERROR] Aborting
This error is caused by the [mysqld] character set in the/etc/my. cnf configuration file. Solution: change default-character-set = utf8 to character_set_server = utf8
7. Use the mysql-u root-p command to connect to mysql. (We have installed mysql before, and the database file is still there, so we do not need to add the user to set permissions)
ERROR message: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql. sock'
The error occurs because the mysql. sock file is in the/usr/lib/mysql/folder.
You can try the following command to connect and view the mysql version.
[Root @ linuxidc var] # mysql-u root-p-S/usr/lib/mysql. sock
Mysql> select version ();
+ ----------- +
| Version () |
+ ----------- +
| 5.5.36 |
+ ----------- +
1 row in set (0.00 sec)