CentOS系统中MySQL5.1升级至5.5.36
记录下centos 6.4环境将mysql5.1升级至5.5.36的过程,希望对大家有个参考。
1.为了安全期间,首先需要备份原有数据
2.卸载原有mysql,先停止原有的mysql服务,再查找 find / -name mysql
[root@linuxidc /]# find / -name mysql /var/lib/mysql /var/lib/mysql/mysql /usr/lib64/mysql
并移除服务
[root@linuxidc /]# rm -rf /var/lib/mysql [root@linuxidc /]# rm -rf /var/lib/mysql [root@linuxidc /]# rm -rf /usr/lib64/mysql
3.安装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.下载安装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
在cmake的过程中出错了,提示could not find curses (missing: curses_library curses_include_path)
执行以下代码就可以了,执行好之后继续cmake,然后再make && make install
[root@localhost mysql-5.5.36]# rm cmakecache.txt
[root@localhost mysql-5.5.36]# yum install ncurses-devel
5.接下来需要把之前备份下来的my.cnf文件,复制至/etc/my.cnf
mysql会读取/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf /.my.cnf。左边的文件优先级是最高的
6.配置好之后,我们就启动mysql,发现有一个问题启动mysql提示:the server quit without updating pid file(…)失败
查看my.cnf文件设置的日记文件地址/var/log/mysqld.log,错误提示如下
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.0m
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
此报错是由/etc/my.cnf配置文件下的[mysqld]设置字符集引起的,解决方法:将default-character-set=utf8 改为 character_set_server=utf8
7.通过mysql -u root -p命令连接mysql。(我们之前有安装过mysql,数据库文件还在,所以不需要再添加用户设置权限了)
出现了错误信息:error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock'
出错原因是我们mysql.sock文件在/usr/lib/mysql/文件夹下
可以尝试通过下面命令连接,并查看mysql版本
[root@linuxidc var]# mysql -u root -p -s /usr/lib/mysql/mysql.sock
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.36 |
+-----------+
1 row in set (0.00 sec)