MySQL 5.1.73升级为MySQL 5.5.35详解
一、前言
二、概述
三、安装MySQL 5.1.73
四、升级为MySQL 5.5.35
五、总结
注,测试环境 CentOS 6.4 x86_64,MySQL 版本(5.1.73、5.5.35)目前最新版。下载地址:http://dev.mysql.com/downloads/mysql/5.1.html#downloads。
一、前言
前几篇博客中我们讲解了MySQL5.1与MySQL5.5之间的性能差异,MySQL5.5的性能有明显的提升,特别是对多核CPU的支持与TPS性能的提升。在这篇博客中我们将主要讲解MySQL 5.1.73升级为MySQL 5.5.35。下面我们继续……
二、概述
1.安装yum源
1
2
|
[root@node6 src] # wget http://mirrors.hustunique.com/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@node6 src] # rpm -ivh epel-release-6-8.noarch.rpm |
2.同步时间
1
2
3
|
[root@node6 src] # yum install -y ntp [root@node6 src] # ntpdate 202.120.2.101 [root@node6 src] # hwclock –w |
3.安装mysql 5.1依赖包
1
|
[root@node6 mysql-5.1.73] # yum -y install ncurses ncurses-devel |
4.安装mysql5.5依赖包
1
|
[root@node6 ~] # yum install -y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl* |
5.安装cmake
1
|
[root@node6 ~] # yum install -y cmake |
三、安装MySQL 5.1.73
1.编译并安装mysql5.1
1
2
3
|
[root@node6 mysql-5.1.73] # tar xf mysql-5.1.73.tar.gz [root@node6 mysql-5.1.73] # cd mysql-5.1.73 [root@node6 mysql-5.1.73] # ./configure --prefix=/usr/local/mysql --localstatedir=/data/mysql --enable-assembler --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-pthread --enable-static --with-big-tables --without-ndb-debug --with-charset=utf8 --with-extra-charsets=all --without-debug --enable-thread-safe-client --enable-local-infile --with-plugins=max |
上面配置内容省略……
1
2
3
4
5
6
7
8
|
This version of MySQL Cluster is no longer maintained. Please use the separate sources provided forMySQL Cluster instead. See http: //dev .mysql.com /doc/refman/5 .1 /en/mysql-cluster .html formoredetails. Thank you forchoosing MySQL! Remember to check the platform specific part of the reference manual forhints about installing MySQL on your platform. Also have a lookat the files inthe Docs directory. |
到这里我们编译配置就完成了,下面我们编译并安装。
1
|
[root@node6 mysql-5.1.73] # make && make install |
注,编译与安装时间比较长请大家耐心等待,当然会看各位博友机器的配置,相对来说配置越好,相对的编译与安装时间相对就少。
2.创建数据目录并授权
1
2
3
4
5
6
7
8
|
[root@node6 mysql-5.1.73] # mkdir -pv /data/mysql mkdir : 已创建目录 "/data/mysql" [root@node6 mysql-5.1.73] # useradd mysql [root@node6 mysql-5.1.73] # chown mysql.mysql /data/mysql/ [root@node6 mysql-5.1.73] # ll /data/ 总用量 20 drwx------. 2 root root 16384 8月 17 18:42 lost+found drwxr-xr-x. 2 mysql mysql 4096 1月 4 16:10 mysql |
3.为mysql提供配置文件
1
2
|
[root@node6 mysql-5.1.73] # cp support-files/my-huge.cnf /etc/my.cnf cp :是否覆盖 "/etc/my.cnf" ? y |
4.简单修改一下配置文件
1
2
3
4
5
6
|
[root@node6 mysql-5.1.73] # vim /etc/my.cnf [client] default-character- set = utf8 [mysqld] default-character- set = utf8 datadir = /data/mysql |
5.提供启动脚本
1
2
3
4
|
[root@node6 mysql-5.1.73] # cp support-files/mysql.server /etc/init.d/mysqld [root@node6 mysql-5.1.73] # chmod +x /etc/init.d/mysqld [root@node6 ~] # chkconfig mysqld --add [root@node6 ~] # chkconfig mysqld on |
6.初始化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
|
[root@node6 mysql-5.1.73] # /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql Installing MySQL system tables... 140104 16:18:43 [Warning] '--default-character-set' is deprecated and will be removed ina future release. Please use '--character-set-server' instead. 140104 16:18:43 [Warning] '--skip-locking' is deprecated and will be removed ina future release. Please use '--skip-external-locking' instead. OK Filling help tables... 140104 16:18:43 [Warning] '--default-character-set' is deprecated and will be removed ina future release. Please use '--character-set-server' instead. 140104 16:18:43 [Warning] '--skip-locking' is deprecated and will be removed ina future release. Please use '--skip-external-locking' instead. OK To start mysqld at boot timeyou have to copy support-files /mysql .server to the right place foryour system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To doso, start the server, thenissue the following commands: /usr/local/mysql//bin/mysqladmin-u root password 'new-password' /usr/local/mysql//bin/mysqladmin-u root -h node6. test .com password 'new-password' Alternatively you can run: /usr/local/mysql//bin/mysql_secure_installation whichwill also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended forproduction servers. See the manual formoreinstructions. You can start the MySQL daemon with: cd /usr/local/mysql/ ; /usr/local/mysql//bin/mysqld_safe & You can testthe MySQL daemon with mysql- test -run.pl cd /usr/local/mysql//mysql-test ; perl mysql- test -run.pl Please report any problems with the /usr/local/mysql//scripts/mysqlbugscript ! |
注,从上面的内容中我们看到了几个警告,我们查看一下。
1
2
3
4
5
6
7
|
140104 16:18:43 [Warning] '--default-character-set' is deprecated and will be removed ina future release. Please use '--character-set-server' instead. 140104 16:18:43 [Warning] '--skip-locking' is deprecated and will be removed ina future release. Please use '--skip-external-locking' instead. OK Filling help tables... 140104 16:18:43 [Warning] '--default-character-set' is deprecated and will be removed ina future release. Please use '--character-set-server' instead. 140104 16:18:43 [Warning] '--skip-locking' is deprecated and will be removed ina future release. Please use '--skip-external-locking' instead. 从上面的警告可以看到,--default-character- set 、--skip-locking选项已经过时,建议使用--character- set -server、--skip-external-locking。 |
7.查看一下初始化目录
1
2
|
[root@node6 data] # ls /data/mysql/ mysql mysql-bin.000001 mysql-bin.000002 mysql-bin.index test |
8.启动一下mysql
1
2
|
[root@node6 ~] # service mysqld start Starting MySQL.. SUCCESS! |
9.测试访问一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@node6 ~] # /usr/local/mysql/bin/mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection idis 1 Server version: 5.1.73-log Source distribution Copyright (c) 2000, 2013, Oracle and /orits affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /orits affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' forhelp. Type '\c' to clearthe current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows inset(0.00 sec) mysql> |
好了,到这里我们的mysql基本就安装完成,但我们还提做上些优化工作。
10.输出mysql的man手册至man命令的查找路径
1
2
3
|
[root@node6 ~] # yum install -y man [root@node6 ~] # vim /etc/man.config MANPATH /usr/local/mysql/man |
11.输出mysql的头文件至系统头文件路径/usr/include
1
|
[root@node6 mysql] # ln -sv /usr/local/mysql/include /usr/include/mysql |
12.输出mysql的库文件给系统库查找路径
1
2
|
[root@node6 mysql] # echo '/usr/local/mysql/lib'> /etc/ld.so.conf.d/mysql.conf [root@node6 mysql] # ldconfig |
13.修改PATH环境变量,让系统可以直接使用mysql的相关命令
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@node6 mysql] # vim /etc/profile.d/mysql.sh exportPATH=$PATH: /usr/local/mysql/bin/ [root@node6 mysql] # source /etc/profile [root@node6 mysql] # mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection idis 2 Server version: 5.1.73-log Source distribution Copyright (c) 2000, 2013, Oracle and /orits affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /orits affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' forhelp. Type '\c' to clearthe current input statement. mysql> |
好了,到这里我们的mysql就全部安装完成了,下面我们来准备一下测试环境。
14.新建测试数据库与测试表
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
mysql> CREATE DATABASE mydb; Query OK, 1 row affected (0.33 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | test | +--------------------+ 4 rows inset(0.00 sec) mysql> use mydb; Database changed mysql> show create database mydb; +----------+---------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------+ | mydb | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+---------------------------------------------------------------+ 1 row inset(0.00 sec) mysql> show tables; Empty set (0.01 sec) mysql> CREATE TABLE `t1` (idint(11) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; Query OK, 0 rows affected (0.03 sec) mysql> show create table t1; +-------+--------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( ` id ` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------+ 1 row inset(0.00 sec) mysql> show tables; +----------------+ | Tables_in_mydb | +----------------+ | t1 | +----------------+ 1 row inset(0.00 sec) mysql> desc t1; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 1 row inset(0.33 sec) |
15.增加数据
(1).先简单插入10行数据
1
|
mysql> insert into t1 value (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
(2).查看一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
mysql> select * from t1; +------+ | id | +------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | +------+ 10 rows inset(0.00 sec) |
(3).插入多行数据方法
1
2
3
4
5
6
7
8
9
10
|
mysql> insert into t1 select * from t1; Query OK, 10 rows affected (0.00 sec) Records: 10 Duplicates: 0 Warnings: 0 mysql> selectcount(*) from t1; +----------+ | count(*) | +----------+ | 20 | +----------+ 1 row inset(0.33 sec) |
四、升级为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 |
15.尝试登录一下并查看一下版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[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.查看一下库和表
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
|
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数据库升级并不是很难,主要得注意数据备份,防止数据和意外丢失。好了,这篇博客就到这里吧。
最后,希望大家有所收获吧^_^……
本文出自 “Share your knowledge …” 博客,请务必保留此出处http://freeloda.blog.51cto.com/2033581/1348689
MySQL 5.1.73升级为MySQL 5.5.35详解的更多相关文章
- mysql用户授权、数据库权限管理、sql语法详解
mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...
- MySQL单列索引和组合索引(联合索引)的区别详解
发现index merge局限性,优化器会自动判断是否使用 index merge 优化技术,查询还是需要组合索引[推荐阅读:对mysql使用索引的误解] MySQL单列索引和组合索引(联合索引)的区 ...
- 【mysql的设计与优化专题(5)】慢查询详解
查询mysql的操作信息 show status -- 显示全部mysql操作信息 show status like "com_insert%"; -- 获得mysql的插入次数; ...
- MySQL日志文件之错误日志和慢查询日志详解
今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好.今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司 ...
- MySQL(十五)之数据备份中mysqldump详解
前言 其实前面一篇数据备份已经是非常的详细了,这里我想单独的讲解一下mysqldump,相信很多程序员都是用过这个命令的! 一.MySQL数据库的备份与还原 1.1.MySQL数据库备份 1)语法 m ...
- SQL优化 MySQL版 -分析explain SQL执行计划与Type级别详解
type索引类型.类型 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:看此文章前,需要有一定的Mysql基础或观看上一篇文章,该文章传送门: https://www.cnblo ...
- mysql中文、英文别名排序问题,order by 关键字详解
order by 关键字详解: SELECT intcode AS 商品编码, product_title AS 名称, retailprice AS 零售价, purchaseprice AS ...
- MySQL入门篇(三)之my.cnf配置文件详解【转】
转自:https://www.cnblogs.com/panwenbin-logs/p/8360703.html #*** client options 相关选项 ***# #以下选项会被MySQL客 ...
- mysql中修改表字段名/字段长度/字段类型详解
在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...
随机推荐
- Android常见控件— — —TextView
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=&qu ...
- poj2631 树的直径 + bfs
//Accepted 492 KB 0 ms //树的直径 bfs #include <cstdio> #include <cstring> #include <iost ...
- 修复win8引导
格式化那个350MB的分区(Win8安装盘启动之后挂载在c:之后,用Win8的安装U盘,进去修复模式,然后进入高级选项的命令行提示符模式.接着,转到安装现有Win8的分区(Win8安装盘启动之后挂载在 ...
- hd oj2025
Ps:尼玛这道题简直坑爹...就是直接比较ascii码....无脑题,想复杂了... 代码:#include "stdio.h"#include "string.h&qu ...
- PHP面向对象中常用的关键字和魔术方法
PHP面向对象中常用的关键字 final 1.final不能修饰成员属性(类中常量不是用这个关键字) 2.final只能修饰类和方法 作用: 使用fi ...
- Inno Setup脚本语法大全
Inno Setup脚本语法大全 ResourceShare Bruce 11个月前 (10-28) 6136浏览 0评论 Inno Setup 是什么?Inno Setup 是一个免费的 Win ...
- 解决DatePicker中Appbar icon缺失
最近写了个小程序,用到了Microsoft.Phone.Controls.Toolkit里的DatePicker控件,引入以后发现AppBar里两个button的图标不显示.如下图: 们是“完成”和“ ...
- Howto add permanent static routes in Ubuntu
Static routing is the term used to refer to the manual method used to set up routing. An administrat ...
- HDU 1003 Max Sum(AC代码)
#include <stdio.h> int main(){ int i,t,j,n,x; int start,end,temp,max,sum; scanf("%d" ...
- USB协议-检测设备连接与速度
在USB设备连接时,USB系统能自动检测到这个连接,并识别出其采用的数据传输速率.USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备. USB支持3种类型的传输速率:1.5Mb/s的低速 ...