5.7特性:javascript
原生支持Systemd
java
更好的性能:對於多核cpu,固態硬盤,鎖有着更好的優化
node
更好的innoDB存儲引擎
mysql
更好的複製功能:複製帶來啦數據徹底不丟失的方案,傳統金融客戶也能夠選擇使用。
linux
新增sys庫:會是DBA訪問最頻繁的庫
sql
更好的優化器:將在這個版本及之後的版本中帶來巨大改進
shell
oracle官方正解決mysql以前最大的難題原生JSON類型的支持。JSON是一種輕量級的數據交換格式,JSON採用徹底獨立於語言的文本格式,可是也使用啦相似於C語言家族的習慣。這些特性使JSON成爲理想的數據交換語言。JSON語法是javascript對象表示語法的子集。
數據庫
數據在鍵值中
bootstrap
數據由逗號分隔
vim
花括號保存對象
方括號保存數組
用JSON編寫的文件,能夠代替.yaml格式的文件。
系統環境:centos7.2 x86_64
由於centos7.2默認安裝了mariadb-libs,因此先要卸載掉
查看是否安裝mariadb
rpm -qa | grep mariadb
卸載mariadb
rpm -e --nodeps mariadb-lib
安裝依賴包
cmake:因爲umysql5.5版本開始棄用了常規的configure編譯方法,因此須要cmake編譯器,用於設置mysql的編譯參數。如:安裝目錄,數據存放目錄,字符編碼,排序規則等。http://www.cmake.org/download
boost:從mysql5.7開始boost庫是必需的,mysql源碼中用到啦C++的boost庫。ftp://ftp.gnu.org/ncurses
GCC:是linux下的C語言編譯工具,mysql源碼編譯徹底由C++編寫
bison:linux下C/C++語法分析器 http://ftp.gnu.org/gnu/bison
ncurses:字符終端處理庫
安裝cmake及必要的軟件
tar zxf cmdke-3.5.6.tar.gz
cd cmake-3.5.2
./bootstrap
gmake && gmake install
查看cmake版本:cmake -versioin
安裝ncurses
tar zxf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure && make && make install
安裝bison
tar zxf bison-3.0.4.tar.gz
cd bison-3.0.4
./configure && make && make install
安裝bootst
tar zxf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
建立mysql用戶和用戶組及目錄
groupadd -r mysql && useradd -r -g mysql -s /sbin/false -M mysql 新建mysql組合mysql用戶禁止登陸shell
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
cmake -DSMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDFEAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGING=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost && make && make install
配置解釋:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql mysql安裝的根目錄
-DMYSQL_DATADIR=/usr/local/mysql/data mysql數據庫文件存放目錄
-DSYSCONFDIR=/etc mysql配置文件所在目錄
-DWITH_MYISAM_STORAGE_ENGINE=1 添加MYISAM引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE=1 添加innoDB引擎支持
-DWITH_ARCHIVE_STORAGE_ENGINE=1 添加ARCHIVE引擎支持
-DMYSQL_UNIX_ADDR=/usr/local/mysql.sock 指定mysql.sock位置
-DWITH_PRARTITION_STORAGE)ENGINE=1 安裝支持數據庫分區
-DEXTRA_CHARSETS=all 使mysql支持全部的擴展字符
-DDEFAULT_COLLATION=utf8_general_ci 設置默認字符集校對規則
-DWITH_SYSTEMD=1 可使用systemd控制mysql服務
-DWITH_BOOST=/usr/local/boost 指向boost庫所在目錄
爲了加快編譯速度還能夠指定內核數編譯安裝
make -j $(grep processor /proc/cpuinfo | wc -l) && make install
-j參數表示根據CPU核數指定編譯時的線程數,能夠加快編譯速度,默認爲1個線程編譯
若要從新運行cmake配置,須要刪除CMakeCache.txt文件
make clean
rm -f CMakeCache.txt
優化mysql的執行路徑
vim /etc/pofile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
設置權限並初始化mysql系統受權表
cd /usr/local/mysql
chown -R mysql:mysql 更改全部者,屬組。
bin/mysql --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
1.以root初始化操做是要加--user=mysql參數,生成一個隨機密碼。
2.以mysql5.7.6以前的版本執行這個腳本初始化系統數據庫
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
建立配置文件
cd /usr/local/mysql/support-files 進入mysql安裝目錄支持文件目錄
cp my-default.cnf /etc/my.cnf 複製模板爲新的配置文件
修改文件中配置選項
vim /etc/my.cnf
baseidr = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server id = 1
socket = /usr/local/mysql/mysql.sock
log_errot = /usr/local/mysql/data/mysqld.err
配置mysql自動啓動
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl enable mysqld.service
systemctl start mysqld.service
如服務啓動失敗,能夠查看錯誤日誌
tail /usr/local/mysql/data/mysqld.err
在mysqld.service,默認的pid文件指定到啦/var/run/mysqld目錄,而並無事先創建該目錄,所以要手動創建該目錄並把受權賦給mysql用戶。若是想永久有效,就採用修改文件的方法:
mkdir /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld
或者修改/usr/lib/system/system/mysqld.service,修改內容以下:
PIDFile=/usr/local/mysql/mysqld.pid
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS
重啓mysql服務:systemctl restart mysqld.service
查看端口號:netstat -anpt | grep mysqld
訪問mysql數據庫
mysql -u root -h 127.0.0.1 -p -p是初始化時生成的隨機密碼