【MySQL】5.7新特性之一

haoge0205發表於2016-11-22
寫在前面
   MySQL 5.7版本於2015年10月份左右 GA,至今已經半年多了,但自己一直沒有時間來follow MySQL 5.7 新的特性,作為MySQL DBA 實在汗顏,以後會花時間來研究5.7 版本的特性並針對部分最佳化功能做出壓力測試。本系列基於5.7.12 版本來講述MySQL的新特性,同時也建議大家跟蹤官方blog和文件,以儘快知悉其新的變化。
一 安全性
   MySQL 5.7 的目標是成為釋出以來最安全的 MySQL 伺服器,其在 SSL/TLS 和全面安全開發方面有一些重要的改變。
1.1 5.7表mysql.user要求plugin欄位非空,且預設值是mysql_native_password,並且不再支援mysql_old_password。
1.2 增加密碼過期,dba可以設定任何使用者的密碼過期時間,具體詳見官方文件《密碼過期策略 
  1. 設定 使用者的過期時間為 90天
  2. ALTER USER yangyi@'127.0.0.1' PASSWORD EXPIRE INTERVAL 90 DAY;
  3. 設定 使用者密碼永遠不過期
  4. ALTER USER yangyi@'127.0.0.1' PASSWORD EXPIRE NEVER;
可能大家都有如果業務系統的賬號某一天突然過期了,業務受到影響 怎麼辦? 別擔心那麼可以設定密碼永不過期。  
  1. default_password_lifetime=0
1.3 DBA可以透過對使用者加鎖/ 解鎖進一步控制其訪問db 。
例子
  1. mysql> alter user yang@'%' account lock;
  2. Query OK, 0 rows affected (0.00 sec)
  3. root@rac4:/srv/my3306/data# >mysql -uyang -h127.0.0.1 -p
  4. Enter password:
  5. ERROR 3118 (HY000): Access denied for user 'yang'@'localhost'. Account is locked.
  6. mysql> alter user yang@'%' account unlock;
  7. Query OK, 0 rows affected (0.00 sec)
1.4 SSL 特性  MySQL 5.7版本提供了更為簡單SSL安全訪問配置,並且預設連線就採用SSL的加密方式。細心的朋友在看官方文件的時候  會注意到 安裝步驟中多了一安裝SSL的步驟,具體關於SSL是什麼,請參考  
  1. shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
推薦兩篇延伸閱讀,關於SSL 特性我相信絕大多數資料庫都沒有開啟,姜承堯文章中的測試案例顯示弱開啟SSL 效能開銷在25% 左右。大家在嘗試新的特性的時候 ,根據自己的業務做評估。
MySQL的SSL加密連線與效能開銷
1.5 使用更安全的初始化方式
逐步廢棄mysql_install_db的安裝方式使用 initialize代替(mysql_install_db <5.7.6<= mysqld  —initialize) ,使用  initialize 引數初始化資料庫有如下特性 
a 只建立一個 root賬號,並且生成一個臨時的標記為過期密碼
b 不建立其他賬號
c 不建立test 資料庫
特別強調與—initialize 不同 ,初始化的時候 使用引數
shell> bin/mysqld --initialize-insecure --user=mysql
則會生成一個無密碼的root 賬號。更詳細的請移步 官方文件 
參考文件

2   

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2128837/,如需轉載,請註明出處,否則將追究法律責任。

相關文章