MySQL源码升级
mysql源码升级
升级的方法一般有两类:
1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法是最省事儿的,也是最保险的,缺点的话,也显而易见,大库的mysqldump费时费力。
2.直接替换掉mysql的安装目录和my.cnf,利用mysql_upgrade 来完成系统表的升级,这种方法需要备份原有的文件,但属于物理拷贝,速度较快。缺点的话,跨版本升级不推荐这么做,比如mysql5.1升级到mysql5.6,mysql5.5升级到mysql5.7等。
本文采用的是第二种方法升级。
MySQL当前版本
[root@localhost ~]# /usr/local/mysql/bin/mysql -V
/usr/local/tdoa/mysql/bin/mysql Ver 14.14 Distrib 5.5.36, for Linux (x86_64) using readline 5.1
备份my.cnf、MySQL安装目录、MySQL数据目录
[root@localhost ~]# cp -p /etc/init.d/mysql /etc/init.d/mysql.old
[root@localhost ~]# cp -p /etc/my.cnf /etc/my.cnf.old
[root@localhost ~]# cp -rp /usr/local/mysql /usr/local/mysql.old
[root@localhost ~]# rm -rf /usr/local/mysql
安装最新版本的MySQL
[root@localhost ~]# tar xvf mysql-5.6.37.tar.gz
[root@localhost ~]# cd mysql-5.6.37
[root@localhost ~]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/tdoa/mysql \
-DMYSQL_DATADIR=/usr/local/tdoa/data5 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDEFAULT_CHARSET=utf8 \
-DMYSQL_TCP_PORT=3336 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0
[root@localhost ~]# make
[root@localhost ~]# make install
[root@localhost ~]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
[root@localhost ~]# cat /etc/my.cnf.old > /etc/my.cnf
[root@localhost ~]# cp -p /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/data5
[root@localhost ~]# chown mysql.mysql -R /usr/local/tdoa/mysql
[root@localhost ~]# chown mysql.mysql -R /usr/local/tdoa/data5
[root@localhost ~]# /etc/init.d/mysql start
[root@localhost ~]# ps -ef |grep mysql
[root@localhost ~]# /etc/init.d/mysql stop
[root@localhost ~]# /usr/local/data5 /usr/local/data5.newold
[root@localhost ~]# mv /usr/local/data5.old /usr/local/data5
[root@localhost ~]# /etc/init.d/mysql start
[root@localhost ~]# /usr/local/mysql/bin/mysql_upgrade -uroot -pxxxx
升级后的MySQL版本
[root@localhost ~]# /usr/local/tdoa/mysql/bin/mysql -V
/usr/local/tdoa/mysql/bin/mysql Ver 14.14 Distrib 5.6.37, for Linux (x86_64) using EditLine wrapper
请保证一些路径的设置和以前的my.cnf一致,如果设置错误,很可能导致启动不了数据库
[ERROR] Could not use /usr/local/data5/slowlog/slow.log for logging
我这里是由于慢日志的位置和老的mysql5.6路径不一致,创建/data/slowlog即可,这里要仔细看报错,然后根据报错来发现和解决问题。
MySQL源码升级的更多相关文章
- mysql源码解读之配置文件
要研究mysql,最好的资源莫过于源码了,所以本人打算通过调试源码的方式来深入理解mysql的点点滴滴.搭建mysql调试环境很简单,从官方下载mysql源码,利用cmake工具生成工程即可.为了方便 ...
- MySQL源码分析以及目录结构 2
原文地址:MySQL源码分析以及目录结构作者:jacky民工 主要模块及数据流经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改.本文将对MySQL的整体架构及重要目录进行讲述. 源码结 ...
- MySQL源码分析以及目录结构
原文地址:MySQL源码分析以及目录结构作者:jacky民工 主要模块及数据流经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改.本文将对MySQL的整体架构及重要目录进行讲述. 源码结 ...
- Mysql源码分析--csv存储引擎
一直想分析下mysql的源码,开始的时候不知道从哪下手,先从csv的文件存储开始吧,这个还是比较简单的.我是用的是mysql5.7.16版本的源码. csv源码文件在mysql源码的mysql-5.7 ...
- 深入MySQL源码 学习方法 何登成专家
MYSQL 技术圈 有哪些做得好,又注重分享的公司: Oracle MySQL, MariaDB, Percona,Google, FB, Twitter, Taobao, NetEase… 有哪些值 ...
- mysql 源码调试方法
http://blog.itpub.net/29254281/viewspace-1847415/ 其中吕海波老师分享的内容是 <调试Oracle二三例:调试技术在日常运维中的应用>其中 ...
- 【转】Ubuntu编译安装mysql源码
主要参考了下面两篇文章 http://forum.ubuntu.org.cn/viewtopic.php?t=330121 http://www.linuxidc.com/Linux/2011-09/ ...
- MySQL源码 数据结构hash
MySQL源码自定义了hash表,因为hash表具有O(1)的查询效率,所以,源码中大量使用了hash结构.下面就来看下hash表的定义: [源代码文件include/hash.h mysys/has ...
- MySQL源码 数据结构array
MySQL源码中自己定义了许多数据结构,放在mysys的目录下,源码中通常都使用这些数据结构来组织存放数据,也更容易实现跨平台. 下面先来看下MySQL定义的动态数组: [源代码include/a ...
随机推荐
- [Arc063F] Snuke's Coloring 2
[Arc063F] Snuke's Coloring 2 题目大意 给你一个网格图,一些点上有标记,求边长最大空白矩形. 试题分析 专门卡\(\log^2 n\)系列. 首先由题意我们可以找到答案的下 ...
- 【数论】【扩展欧几里得】Codeforces Round #484 (Div. 2) E. Billiard
题意:给你一个台球桌面,一个台球的初始位置和初始速度方向(只可能平行坐标轴或者与坐标轴成45度角),问你能否滚进桌子四个角落的洞里,如果能,滚进的是哪个洞. 如果速度方向平行坐标轴,只需分类讨论,看它 ...
- Codeforces Round #297 (Div. 2)B. Pasha and String 前缀和
Codeforces Round #297 (Div. 2)B. Pasha and String Time Limit: 2 Sec Memory Limit: 256 MBSubmit: xxx ...
- HDU 3535 AreYouBusy 经典混合背包
AreYouBusy Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Su ...
- 通过maven-war-plugin插件对war包分环境打包
针对多环节,从源头打包入手,当然这些都可以在运维阶段用脚本进行替换来代替 resources/environment/下有四个环境,local本地.dev开发.test测试.pre预上线.prod生产 ...
- druid连接数据库加解密
<bean id="dataSource" class="cn.zsmy.palmdoctor.utils.DecryptDruidSource" ini ...
- docker Redis的主从配置
redis是k-v型nosql数据库,支持字符串(string).列表(list).集合(set).散列(hash).有序集合(zset:形如member:score的散列集合,其中member为成员 ...
- [翻译] INTERACTIVE TRANSITIONS 实时动态动画
INTERACTIVE TRANSITIONS 实时动态动画 翻译不到位处敬请谅解,感谢原作者分享精神 原文链接 http://www.thinkandbuild.it/interactive-tra ...
- Android图片加载框架最全解析(三),深入探究Glide的缓存机制
在本系列的上一篇文章中,我带着大家一起阅读了一遍Glide的源码,初步了解了这个强大的图片加载框架的基本执行流程. 不过,上一篇文章只能说是比较粗略地阅读了Glide整个执行流程方面的源码,搞明白了G ...
- JSON.parse()和JSON.stringify()方法
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...