天天看點

MySQL5.7的新特性

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

您的支援是對部落客最大的鼓勵,感謝您的認真閱讀。本文版權歸作者所有,歡迎轉載,但請保留該聲明。

繼續閱讀