- 一、MySQL5.7對比5.6的優勢
- 1.安全性
- 2.靈活性
- 4.易用性
- 5.可用性
- 6.性能優勢
- 7.默認引數的改變
- 8.安裝不同
- 二、MySQL 5.6 的安裝步驟
- 1.查看并解壓原始碼包
- 2.安裝環境
- 3.CMAKE編譯并安裝
- 4.配置my.cnf和啟動腳本
- 5.添加環境變數
- 6.創建程式賬號,并授權
- 7.初始化MySQL配置
- 8.開啟資料庫,并設定密碼登入
一、MySQL5.7對比5.6的優勢
1.安全性
用戶表 mysql.user 的 plugin欄位不允許為空, 默認值是 mysql_native_password,而不是 mysql_old_password,不再支持舊密碼格式;
增加密碼過期機制,過期后需要修改密碼,否則可能會被禁用,或者進入沙箱模式;
增加密碼過期機制,過期后需要修改密碼,否則可能會被禁用,或者進入沙箱模式;
提供了更為簡單SSL安全訪問配置,并且默認連接就采用SSL的加密方式,
2.靈活性
MySQL資料庫從5.7.8版本開始,也提供了對JSON的支持,
可以混合存盤結構化資料和非結構化資料,同時擁有關系型資料庫和非關系型資料庫的優點
能夠提供完整的事務支持
generated column是MySQL 5.7引入的新特性,所謂generated column,就是資料庫中這一列由其他列計算而得
4.易用性
在MySQL 5.7 之前,如果用戶輸入了錯誤的SQL陳述句,按下 ctrl+c ,雖然能夠”結束”SQL陳述句的運行,但是,也會退出當前會話,MySQL 5.7對這一違反直覺的地方進行了改進,不再退出會話,
MySQL 5.7可以explain一個正在運行的SQL,這對于DBA分析運行時間較長的陳述句將會非常有用,
sys schema是MySQL 5.7.7中引入的一個系統庫,包含了一系列視圖、函式和存盤程序, 該專案專注于MySQL的易用性,
例如:如何查看資料庫中的冗余索引;如何獲取未使用的索引;如何查看使用全表掃描的SQL陳述句,
5.可用性
在線設定 復制的過濾規則 不再需要重啟MySQL,只需要停止SQLthread,修改完成以后,啟動SQLthread,
在線修改buffer pool的大小,
Online DDL MySQL 5.7支持重命名索引和修改varchar的大小,這兩項操作在之前的版本中,都需要重建索引或表,
在線開啟GTID ,在之前的版本中,由于不支持在線開啟GTID,用戶如果希望將低版本的資料庫升級到支持GTID的資料庫版本,需要先關閉資料庫,再以GTID模式啟動,所以導致升級起來特別麻煩,
6.性能優勢
6.1 臨時表的性能改進,
-
臨時表只在當前會話中可見
-
臨時表的生命周期是當前連接(MySQL宕機或重啟,則當前連接結束)
6.2 只讀事務性能改進,
- MySQL 5.7通過 避免為只讀事務分配事務ID ,不為只讀事務分配回滾段,減少鎖競爭等多種方式,優化了只讀事務的開銷,提高了資料庫的整體性能,
6.3 加速連接處理,
- 在MySQL 5.7之前,變數的初始化操作(THD、VIO)都是在連接接收執行緒里面完成的,現在將這些作業下發給作業執行緒,以減少連接接收執行緒的作業量,提高連接的處理速度,這個優化對那些頻繁建立短連接的應用,將會非常有用,
6.4 復制性能的改進 (支持多執行緒復制(Multi-Threaded Slaves, 簡稱MTS)
-
MySQL的默認配置是庫級別的并行復制,為了充分發揮MySQL 5.7的并行復制的功能,我們需要將slave-parallel-type配置成 LOGICAL_CLOCK,
-
支持多源復制(Multi-source replication)
7.默認引數的改變
-
默認binlog格式調整為ROW格式
-
默認binlog錯誤后的操作調整為ABORT_SERVER
-
在先前的選項下(binlog_error_action=IGNORE_ERROR),如果一個錯誤發生,導致無法寫入binlog,mysql-server會在錯誤日志中記錄錯誤并強制關閉binlog功能,這會使mysql-server在不記錄binlog的模式下繼續運行,導致從庫無法繼續獲取到主庫的binlog,
-
默認開啟mysql崩潰時的binlog安全,
-
默認調低slave_net_timeout,
8.安裝不同
8.1 MySQL 5.6:初始化資料時需要進到家目錄的 script 目錄下
/usr/local/mysql/scripts/mysql_install_db
–basedir=/usr/local/mysql/
–datadir=/data/mysql
–defaults-file=/etc/my.cnf
–user=mysql
此時資料庫密碼為空,
8.2 MySQL 5.7:初始化資料時需要進到家目錄的 bin 目錄下
[root@localhost mysql]# bin/mysqld \\
--initialize \ #會生成臨時密碼
--user=mysql \ #拿取資料的時候使用的用戶身份
--basedir=/application/mysql-5.7 \ #在初始化的時候呼叫MySQL程式的目錄位置
--datadir=/application/mysql-5.7/data #存放資料的目錄
注:–initialize 會自動生成密碼在 error log 里面,如果加 --initialize-insecure 密碼為空,
二、MySQL 5.6 的安裝步驟
1.查看并解壓原始碼包
[root@localhost ~]# ls
mysql-5.6.26.tar.gz
[root@localhost ~]# tar -zxvf mysql-5.6.26.tar.gz -C /opt
2.安裝環境
[root@localhost ~]# yum -y install \
ncurses-devel \ ##提供字符終端處理庫
autoconf \ ## 是用于適應多種Unix類系統的 shell腳本的工具
cmake
3.CMAKE編譯并安裝
[root@localhost ~]# cd /opt/mysql-5.6.26/
[root@localhost mysql-5.6.26]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
[root@localhost mysql-5.6.26]# make -j3 && make install
4.配置my.cnf和啟動腳本
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf ##用模板配置覆寫原有的my.cnf檔案內容
cp: overwrite ‘/etc/my.cnf’? yes
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld ##將模板啟動腳本放到init.d下的mysqld中
[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld ##給與執行權限
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chkconfig mysqld --level 235 on
5.添加環境變數
[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.6.26]# source /etc/profile
[root@localhost mysql-5.6.26]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
6.創建程式賬號,并授權
[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/
7.初始化MySQL配置
[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \ ##庫檔案目錄
--basedir=/usr/local/mysql \
--datadir=/home/mysql
[root@localhost mysql-5.6.26]# ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock ##不插入這條有時會連接不上資料庫
[root@localhost mysql-5.6.26]# vi /etc/init.d/mysqld
……省略部分
basedir=/usr/local/mysql ##填路徑,作業目錄
datadir=/home/mysql ##資料存放目錄
8.開啟資料庫,并設定密碼登入
[root@localhost mysql-5.6.26]# service mysqld start
[root@localhost mysql-5.6.26]# netstat -anpt | grep 3306
[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "abc123"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/149120.html
標籤:java
