MySQL 5.7版本据说已经在了很大的性能提升以及做得更加安全了,想了解更多MySQL 5.7的新特性可以参考我转载叶金荣老师的MySQL 5.7的新特性说明。这里我简单演示一下MySQL 5.7的安装已经一些新特性的使用,希望大家能一起进去,一起探讨技术。
MySQL 5.7的官方下载地址:http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
下面简单介绍一下安装:
下面进行数据目录的创建以及授权:
基本操作已经完成,下面进行初始化操作,在MySQL 5.7的初始化操作与MySQL 5.6有点不同了,下面在MySQL 5.7的版本用MySQL 5.6的初始化方式进行操作一下,让大家看下会报什么错:
可以看到mysql_install_db is deprecated,说不赞同使用mysql_install_db,推荐使用的方法是:
Please consider switching to mysqld --initialize ,Please consider using --initialize instead
正确的初始方式如下:./bin/mysqld --initialize --user=mysql --basedir=/data/service/mysql-5.7.10/ --datadir=/data/mysql3306,如果datadir目录有文件,则会报以下错:
所以要把data directory文件删除掉再执行,如果删除目录下的文件还是报同样的错,可以试试把目录删除掉,再创建一个,然后授权:
MySQL 5.7初始化完后会生成一个临时的密码,A temporary password is generated for root@localhost: )vyd3aXj8hhC 如果想初始化表空间,在后面加上 --innodb_data_file_path=ibdata1:1G:autoextend即可。
启动MySQL 5.7,拷贝support-files/my-default.cnf ./
编辑my.cnf加上基本选项:
编辑启动脚本:
运行脚本启动 sh start_mysql.sh 。
登录MySQL 5.7,先添加MySQL 5.7的bin路径:
登录时输入的密码是刚刚初始化完的密码:
第一次登录,是必须要修改密码才能查看show databases;
从上面的信息可以看到,叫我们使用ALTER USER进行修改,下面我们修改一下密码,有关更多MySQL 5.7的用户密码设置可以参考:https://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html
MySQL 5.7的mysql.user表已经没有password这一列了,所以查询用户和密码的方式如下:
MySQL 5.7支持为表增加计算列
什么叫计算列呢,简单来说就是某一列的值是通过别的列计算得来,例如a列值为1,b列值为2,c列不需要操作手动插入,定义为a + b的结果为c的值,那么c就是计算列,是通过别的列计算得来,下面我们进行例子说明:
在MySQL 5.7之前的版本中,要实现这样的效果要利用触发器来完成,以下是以前的实现过程:
创建一个插入的触发器:
我们插入数据:
但如果我们更新了c1或者c2的值,c3是不会变动的,所以我们要加一个update的触发器:
可以看到,如果想实现计算列,那么就要借助触发器或者视图来实现,但在生产环境中,是不太建议使用触发器或者视图的。下面用MySQL 5.7来实现就变得很简单了。
MySQL 5.7计算列的实现:
在CREAE TABLE和ALTER TABLE 中都支持增加计算列的方式:
下面我们创建测试表tb2:
插入数据看效果:
更新数据看效果:
可以看到相当的方便,MySQL 5.7的很多新特性都给我们带来了便利和惊喜^.^
总结:
一、MySQL 5.7初始方法相比之前的版本都有所不同,做的相对更为安全了,以前版本初始化完root密码是空的,MySQL 5.7则有一个临时密码。
二、MySQL 5.7在CREAE TABLE和ALTER TABLE 中都支持增加计算列的方式了,所有可以少用触发器和视图来实现计算列了。
三、MySQL 5.7无论在性能还是安全性方面都得到了很大的提升,希望小伙伴们一起好好学习MySQL 5.7的一些新特性。
参考资料:
http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
https://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html
http://dev.mysql.com/doc/refman/5.7/en/create-table.html
作者:陆炫志
出处:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111
您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。