MySQL5.7 初使用


 

    MySQL 5.7.6 發布了快一年了, 官方的說法是比起前幾代有很大的安全性提升,性能報告也是比之前版本提升了 2、3倍。

    性能上這么大的提升,安全上也這么大的改進,怎么能不心動呢,這幾天出於好奇,准備對 5.7.6 版本一探究竟。

    我到官網下載了個 5.7.6 GPL 版本到本地,准備跑起來試試看,想說的是 現在的部署方式和一前的部署方式有一定的差別。

   -----------------------下面直接來安裝吧---------------------------

首先來回顧一下以前我們是個怎樣的步驟自定義部署MySQL:

1.創建 Data 目錄

2.編輯配置文件

3.mysql_install_db 初始化系統庫

4.mysqld_safe 以 watch 方式啟動Mysql服務

5.mysqladmin password   設置root密碼

6.mysql 連接進去,就可以使用了。

 

新版本的部署稍微有一點不同的地方:

1.在初始化系統庫的時候 不再使用 mysql_instatll_db 完成,改由 mysqld  --initialize 來完成。
2.系統庫初始化完成后 庫里不再有 test 庫 ,root 密碼已經隨機的給我們生成好了
3.當然,系統給我們隨機分配的 密碼是不能長久使用的, 我們需要在第一次進入系統后進行修改密碼,才能繼續后續的操作。
 
 
--------OK 切入正題吧-----------
1.初始化系統庫
  svan-mac:mysql-5.7.9-osx10.10-x86_64 xiean$ ./bin/mysqld  --initialize  --datadir=/Users/xiean/workdir/mysql/mydata --basedir=/Users/xiean//tools/protect/mysql-5.7.9-osx10.10-x86_64
 
2.配置SSL (可選)
 初始化完成后我我們可以配置SSL,當然也可以不用配置
svan-mac:~ xiean$ mysql_ssl_rsa_setup --datadir=/Users/xiean/workdir/mysql/mydata/
這一步配置使得我們可以方便的使用SSL方式來鏈接我們的數據庫,當然性能上邊也有一定的損失,據 innside 君測試,性能損失約為25%。
 
初始化完成后 值得注意后邊 會有個默認的 root 密碼:
2015-12-04T06:51:25.434592Z 1 [Note] A temporary password is generated for root@localhost: si4J#m<an#U%
 
3.啟動MySQL服務
svan-mac:~ xiean$ mysqld_safe --defaults-file=/Users/xiean/workdir/mysql/my.cnf &
當系統庫初始化完成后我們就可以啟動mysql,開始使用了;
 
在start mysql 的時候會遇到一些其它的問題:
最常見的問題:
2015-12-04T06:55:47.618298Z 0 [ERROR] InnoDB: The Auto-extending innodb_system data file '/Users/xiean/workdir/mysql/mydata/ibdata1' is of a different size 768 pages (rounded down to MB) than specified in  the .cnf file: initial 3072 pages, max 0 (relevant if non-zero) pages!
 
這句話大概的意思就是:
 
我們配置文件配置的  ibdata文件大小和 當前的ibdata 文件大小不匹配,要怎么改呢?
 
注意兩個數字: 768 ,3072
 
768     是指剛才 初始化完成后, mysql 幫我們生成的 ibdata 文件 的 page 數
3072   是指我們配置文件的 ibdata 文件的 pages 數
 
如果你不清楚 每個page 的大小,可以這樣子計算:${配置文件.ibdataSize}/3072 
默認情況 page_size = 16KB
 
那么根據系統給我們初始化完成的ibdata文件大小, 我們需要修改 配置文件ibdata size : 768*16/1024MB 
 
好了,調整了以上值之后我們就可以把mysql拉起來了。
 
4.開始使用MySQL
 
我習慣性的,先看一下當前存在的DB ;結果是 mysql 不讓我看,說是先讓重置密碼,OK,那就重置密碼吧,到官網doc上找了一下語法:
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
 
mysql> alter user user() identified by 'abc123';
Query OK, 0 rows affected (0.02 sec)
下面我們可以隨心所欲的干我們想干的事了。
 
5.7都說安全上邊是個提升,我們打開 binlog 文件查看,可以發現剛才我們執行的命令,這里的密碼已經不再是 明文了:
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*6691484EA6B50DDDE1926A220DA01FA9E575C18A' 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM