四、升级为MySQL 5.5.35
1.升级前准备(查看MySQL 5.1相关参数,具体如下)
(1).安装目录
[root@node6 ~]# /usr/local/mysql
(2).配置文件
[root@node6 ~]# /etc/my.cnf
(3).数据目录
[root@node6 ~]# /data/mysql
(4).启动脚本
[root@node6 ~]# /etc/init.d/mysqld
(5).其它参数
输出mysql的man手册至man命令的查找路径
输出mysql的头文件至系统头文件路径/usr/include
输出mysql的库文件给系统库查找路径
修改PATH环境变量,让系统可以直接使用mysql的相关命令
2.升级方式
直接将MySQL5.5安装目录覆盖正在运行的Mysql目录(我们这里演示使用的方式)
将MySQL5.5安装到其它目录中,如/usr/local/mysql5
3.备份所有数据库
[root@node6 ~]# mysqldump -uroot -p123456 test -l -F '/tmp/test.sql'
-l 锁定
-F 即flush logs,可以重新生成新的日志文件,当然包括log-bin日志
4.备份安装目录
[root@node6 ~]# tar czvf mysql_5.1.73_full.tar.gz /usr/local/mysql
5.备份数据目录
[root@node6 ~]# tar czvf mysql_5.1.73_data_full.tar.gz /data/mysql
6.备份配置文件
[root@node6 ~]# cp /etc/my.cnf ./
7.关闭mysql
[root@node6 ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!
好了,到这里我们准备工作就完成了。下面我们来升级到MySQL 5.5.35……
8.升级mysql 5.5.35
[root@node6 mysql]# tar xf mysql-5.5.35.tar.gz
[root@node6 mysql]# cd mysql-5.5.35
[root@node6 mysql-5.5.35]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/data/mysql -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
[root@node6 mysql-5.5.35]# make && make install
9.删除原有的mysql5.1的配置文件
[root@node6 mysql-5.5.35]# rm -rf /etc/my.cnf
10.提供新的配置文件
[root@node6 mysql-5.5.35]# cp support-files/my-huge.cnf /etc/my.cnf
11.修改一下配置文件
[mysqld]
datadir = /data/mysql
注,只增加一行指定数据数据/data/mysql。
12.尝试重新启动一下
[root@node6 mysql-5.5.35]# service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!
13.执行更新程序并重启mysql
[root@node6 mysql-5.5.35]# /usr/local/mysql/bin/mysql_upgrade
Looking for 'mysql' as: /usr/local/mysql/bin/mysql
Looking for 'mysqlcheck' as: /usr/local/mysql/bin/mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysqld.sock'
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysqld.sock'
mydb.t1 OK
mydb.t2 OK
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Running 'mysql_fix_privilege_tables'...
OK
14.查看生成的更新文件
[root@node6 ~]# cd /data/mysql/
[root@node6 mysql]# ls
ibdata1 mysql mysql-bin.000004 mysql-bin.000008 node6.test.com.err
ib_logfile0 mysql-bin.000001 mysql-bin.000005 mysql-bin.000009 node6.test.com.pid
ib_logfile1 mysql-bin.000002 mysql-bin.000006 mysql-bin.index performance_schema
mydb mysql-bin.000003 mysql-bin.000007 mysql_upgrade_info test
[root@node6 mysql]# cat mysql_upgrade_info
5.5.35
15.尝试登录一下并查看一下版本
[root@node6 mysql]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.5.35-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select version();
+------------+
| version() |
+------------+
| 5.5.35-log |
+------------+
1 row in set (0.00 sec)
16.查看一下库和表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> use mydb;
Database changed
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| t1 |
| t2 |
+----------------+
2 rows in set (0.00 sec)
mysql> select count(*) from t1;
+----------+
| count(*) |
+----------+
| 20971520 |
+----------+
1 row in set (0.00 sec)
好了,到这里我们就升级成功了。
五、总结
根据上面的演示,我们发现MySQL数据库升级并不是很难,主要得注意数据备份,防止数据和意外丢失。好了,这篇博客就到这里吧。
最后,希望大家有所收获吧^_^……