from: http://blog.csdn.net/lyd518/article/details/20303421
四、升级为MySQL 5.5.35
1.升级前准备(查看MySQL 5.1相关参数,具体如下)
(1).安装目录
1
|
[root@node6 ~] # /usr/local/mysql |
(2).配置文件
1
|
[root@node6 ~] # /etc/my.cnf |
(3).数据目录
1
|
[root@node6 ~] # /data/mysql |
(4).启动脚本
1
|
[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.备份所有数据库
1
|
[root@node6 ~] # mysqldump -uroot -p123456 test -l -F '/tmp/test.sql' |
- -l 锁定
- -F 即flush logs,可以重新生成新的日志文件,当然包括log-bin日志
4.备份安装目录
1
|
[root@node6 ~] # tar czvf mysql_5.1.73_full.tar.gz /usr/local/mysql |
5.备份数据目录
1
|
[root@node6 ~] # tar czvf mysql_5.1.73_data_full.tar.gz /data/mysql |
6.备份配置文件
1
|
[root@node6 ~] # cp /etc/my.cnf ./ |
7.关闭mysql
1
2
|
[root@node6 ~] # service mysqld stop Shutting down MySQL.. SUCCESS! |
好了,到这里我们准备工作就完成了。下面我们来升级到MySQL 5.5.35……
8.升级mysql 5.5.35
1
2
3
4
|
[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的配置文件
1
|
[root@node6 mysql-5.5.35] # rm -rf /etc/my.cnf |
10.提供新的配置文件
1
|
[root@node6 mysql-5.5.35] # cp support-files/my-huge.cnf /etc/my.cnf |
11.修改一下配置文件
1
2
|
[mysqld] datadir = /data/mysql |
注,只增加一行指定数据数据/data/mysql。
12.尝试重新启动一下
1
2
3
|
[root@node6 mysql-5.5.35] # service mysqld restart Shutting down MySQL. SUCCESS! Starting MySQL.. SUCCESS! |
13.执行更新程序并重启mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[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.查看生成的更新文件
1
2
3
4
5
6
7
8
|
[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 |