专栏首页后端技术探索\bmysql5.7 再不升就out了

\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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mysql新特性

    oracle官方发布的基准测试声明:In benchmark tests using SysBench Read-only Point-Selects, at ...

    后端技术探索
  • mysql 水平分表的几种方法

    当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。

    后端技术探索
  • mysql 水平分表的几种方法

    当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。

    后端技术探索
  • 技术分享 | 使用备份恢复实例时存在的坑

    爱可生服务团队成员,负责处理客户在MySQL日常运维中遇到的问题;擅长处理备份相关的问题,对数据库相关技术有浓厚的兴趣,喜欢钻研各种问题。

    爱可生开源社区
  • Docker mysql 把数据存储在本地目录

    Docker mysql 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可

    双面人
  • MySQL远程代码执行/权限提升漏洞的分析与实践(CVE-2016-6662)

    本文作者:安全小飞侠,原文链接:http://avfisher.win/archives/593 0x00 背景 2016年9月12日,国外安全研究人员Dawi...

    Seebug漏洞平台
  • MySQL的安装、启动和基础配置 —— mac版本

    第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads/选...

    changxin7
  • reset master、reset slave与reset slave all

    reset master、reset slave与reset slave all 今天测一测这几个参数,首先说下测试环境:

    AsiaYe
  • CentOS 7 安装 MySQL 5.6

    8复制解压目录下面的mysql.server文件到/etc/init.d/mysqld

    九州暮云
  • Linux 学习_mysql

    下载地址:http://mysql.mirror.kangaroot.net/Downloads/MySQL-4.1/mysql-standard-4.1.21...

    Hongten

扫码关注云+社区

领取腾讯云代金券