\bmysql5.7 再不升就out了

Mysql 5.7的GA版本在10月末已经发布了,有个大牛进行了性能测试,对比5.6版,每秒查询数增加了一倍,达到50w/s. 堪称是mysql史上的又一大里程碑版本。

关于5.7的具体改进点(release note),还没有来得及深入研究,这儿借用inside君的一篇博文概述一下重要的改进点:

  1. 1、更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的;
  2. 2、更好的InnoDB存储引擎:内容太多,就等Inside君的《MySQL技术内幕:InnoDB存储引擎》第3版吧;
  3. 3、更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。此外,GTID在线平滑升级也变得可能;
  4. 4、更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题;
  5. 5、原生JSON类型的支持:文档数据库们已经哭晕在厕所了吧;
  6. 6、更好的地理信息服务支持:InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性;
  7. 7、新增sys库:这是Inside君最爱的功能(虽然5.6也可以支持),但是知道的人好像不怎么多,以后这会是DBA访问最频繁的库。

小编的机器是mac pro, 目前还是10.9的系统,顺便记录一下升级的过程,希望对mac用户们有所帮助。

1.官网下载,http://dev.mysql.com/downloads/mysql/,找到对应mac系统的mysql版本,目前是5.7.9,选择下载dmg格式的文件。

2.先停止掉mysql服务,有两种方法,第一种是杀进程

ps aux | grep mysql 找出mysql进程pid,然后kill -9 pid

第二种就是正常的停止服务:sudo /usr/local/mysql/support-files/mysql.server stop

3.在安装之前,先看一下旧版本5.6在mac下mysql的安装目录,是在/usr/local/目录下,有mysql-5.6.21-osx10.8-x86_64目录和 指向5.6目录的mysql链接。这个链接是自动生成的。等我们安装5.7后,同样会在/usr/local/下生成5.7的目录,而且mysql链接会自动指向5.7的目录。

3.确认进程停掉后,就开始安装dmg包,打开后,只安装和dmg同名的pkg文件即可,每步都按照默认装完,注意安装完会弹框提示初始密码,记录一下。

4.很重要的一步是要把5.6的所有数据库表的数据迁过来,只要了解mysql的数据是专门存放在安装目录下的data子目录中,数据迁移就很简单了,安全起见先把5.7的数据目录改名备份,然后把5.6的data目录copy到5.7安装目录下:

mv /usr/local/mysql-5.7.9-osx10.9-x86_64/data /usr/local/mysql-5.7.9-osx10.9-x86_64/dataold

sudo cp -rf /usr/local/mysql-5.6.21-osx10.8-x86_64/data /usr/local/mysql-5.7.9-osx10.9-x86_64/

5.设置数据目录所属用户,因为copy过来的data目录默认是root,需要改所有者为_mysql:

sudo chown -R _mysql /usr/local/mysql-5.7.9-osx10.9-x86_64/data

6.接下来就是启动mysql,然后进行升级修复:

sudo /usr/local/mysql/support-files/mysql.server start

/usr/local/mysql/bin/mysql_upgrade

7.重启mysql服务

sudo /usr/local/mysql/support-files/mysql.server restart

8.到这里应该ok了,来验证一下版本号:

/usr/local/mysql/bin/mysql -v

最后要说的是,因为5.7不再支持空密码登录,所以安装后默认密码会是一个随机的串,如果你没有记住的话,可以通过如下方式进行重新设置root密码:

1)停止mysql服务

2)safe方式重启:sudo mysqld_safe --skip-grant-tables &

3)直接改用户表:update mysql.user set authentication_string=PASSWORD('yourpass') where Host='localhost' and User='root';

现在你可以愉快的开启5.7之旅了。

原文发布于微信公众号 - nginx(nginx-study)

原文发表时间:2015-11-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏pangguoming

浅谈分布式数据库

文章集中整理总结mysql分库分表开源产品,分布式数据库的设计,以及实际应用案例等相关内容,部分附上本文作者实际应用过程中的理解。

8532
来自专栏MongoDB中文社区

MongoDB 3.6中的新功能 (1) - 发展的速度

New in MongoDB 3.6. What’s New in MongoDB 3.6. Part 1 – Speed to Develo

1421
来自专栏吴伟祥

web服务器集群(多台web服务器)后session如何同步和共享

在访问量上去以后,很多人会采用web集群的方式在满足逐渐增长的用户量。这时候就不得不面对一个问题,那就是在多个服务器下,每次请求都会因为负载均衡而分配到不同的服...

2263
来自专栏北京马哥教育

让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!

好的Linux运维工程师区分在效率上。如果一位高效的Linux运维工程师能在 10 分钟内完成一件他人需要 2 个小时才能完成的任务,那么他应该受到奖励(得到更...

3996
来自专栏企鹅号快讯

分布式金融系统调优实践

引言: 某银行采用分布式架构对其核心产品系统进行重构,重构后该系统由多个技术模块和业务模块组成,存在联机交易、异步消息、自动任务、批量等交易形态。各模块之间交互...

2408
来自专栏编程直播室

折腾git pages+hexo+NexT初识hexo开始本地试运行准备服务器准备上传工具先告一段落发表文章主题

2246
来自专栏FreeBuf

MacOS再次出现漏洞,号称牢不可破的系统也有弱点

本文讲述了我在苹果的macOS系统内核中发现的几个堆栈和缓冲区溢出漏洞,苹果官方将这几个漏洞归类为内核中的远程代码执行漏洞,因此这些漏洞的威胁级别非常高。攻击者...

1012
来自专栏Java后端技术栈

记一次解决业务系统生产环境宕机问题!

Zabbix告警生产环境应用shutdown,通过堡垒机登入生产环境,查看应用容器进程,并发现没有该业务应用的相应进程,第一感觉进程在某些条件下被系统杀死了,然...

881
来自专栏企鹅号快讯

如何更精准的在 Github 上搜索开源库?你需要这些技巧!

正文共: 2468字 8图 预计阅读时间: 7分钟 一、前言 在日常工作中,我们并不推荐去重复造轮子,通常我们会去搜索一些稳定的第三方开源库来使用。而 Gith...

2136
来自专栏腾讯Bugly的专栏

手Q Android缓存监控与优化实践

死锁问题对产品的影响是巨大的,那么是否会有效的方法能够监控Android应用的死锁呢?

77112

扫码关注云+社区

领取腾讯云代金券