mysql5.7的安裝方式node
安裝MySQL能夠分爲三種方式:{1;源碼編譯、2;二進制安裝、3;rpm安裝}mysql
1、MySQL 5.7主要特性:sql
原生支持Systemd
更好的性能:對於多核CPU、固態硬盤、鎖有着更好的優化
更好的InnoDB存儲引擎
更爲健壯的複製功能:複製帶來了數據徹底不丟失的方案,傳統金融客戶也能夠選擇使用MySQL數據庫。數據庫
新增sys庫:之後這會是DBA訪問最頻繁的庫
更好的優化器:優化器代碼重構的意義將在這個版本及之後的版本中帶來巨大的改進,Oracle官方正在解決MySQL以前最大的難題原生JSON類型的支持(JavaScript Object Notation)bootstrap
注:JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。JSON採用徹底獨立於語言的文本格式,可是也使用了相似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(通常用於提高網絡傳輸速率)。vim
JSON 語法是 JavaScript 對象表示語法的子集。centos
l 數據在鍵值對中數組
l 數據由逗號分隔網絡
l 花括號保存對象socket
l 方括號保存數組
l 安裝文件準備
l 下載cmake-3.5.tar.gz http://wwwNaNake.org/download/
l 下載ncurses-5.9.tar.gzftp://ftp.gnu.org/gnu/ncurses/
l 下載bison-3.0.4.tar.gzhttp://ftp.gnu.org/gnu/bison/
l 下載mysql-5.7.13.tar.gz
l wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
l 下載Boost_1_59_0.tar.gz
l wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
安裝實例:(首先進行源碼編譯安裝)
首先經過yum安裝Development Tools開發工具{包括gcc..}
yum groupinstall "Development Tools"
刪除centos系統自帶的mariadb數據庫防止發生衝突
rpm -qa |grep mariadb
rpm -e mariadb-libs --nodeps
2、安裝依賴包
注: 相關依賴包的做用
cmake:因爲從MySQL5.5版本開始棄用了常規的configure編譯方法,因此須要CMake編譯器,用於設置mysql的編譯參數。如:安裝目錄、數據存放目錄、字符編碼、排序規則等。
Boost #從MySQL 5.7.5開始Boost庫是必需的,mysql源碼中用到了C++的Boost庫,要求必須安裝boost1.59.0或以上版本
GCC是Linux下的C語言編譯工具,mysql源碼編譯徹底由C和C++編寫,要求必須安裝GCC
bison:Linux下C/C++語法分析器
ncurses:字符終端處理庫
安裝cmake工具,後續安裝mysql使用
tar zxvf cmake-3.5.2.tar.gz
cd cmake-3.5.2/
./bootstrap
gmake && gmake install
cmake -version
cd ..
tar zxvf ncurses-5.9.tar.gz
cd ncurses-5.9/
./configure && make && make install
cd ..
tar zxvf bison-3.0.4.tar.gz
cd bison-3.0.4/
./configure && make && make install
cd ..
tar zxvf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
建立mysql的用戶和組
groupadd -r mysql
useradd -r -g mysql -s /bin/false -M mysql
tar zxvf mysql-5.7.18.tar.gz
cd mysql-5.7.18/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost
注1:配置解釋:
-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/mysql.sock[指定mysql.sock位置]
-DWITH_PARTITION_STORAGE_ENGINE=1[安裝支持數據庫分區]
-DEXTRA_CHARSETS=all [使MySQL支持全部的擴展字符]
-DDEFAULT_CHARSET=utf8[設置MySQL的默認字符集爲utf8]-DDEFAULT_COLLATION=utf8_general_ci [設置默認字符集校對規則]
-DWITH-SYSTEMD=1 [可使用systemd控制mysql服務]
-DWITH_BOOST=/usr/local/boost [指向boost庫所在目錄]
更多參數執行[root@localhost mysql-5.7.13]# cmake. –LH
make && make install
echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
source /etc/profile
建立mysql數據庫的數據存儲位置data,以及log日誌存放的位置
mkdir /usr/local/mysql/data -p
mkdir /usr/local/mysql/log
調整mysql的屬主屬組以及data目錄設置爲750
chown -R mysql:mysql /usr/local/mysql/
chmod 750 /usr/local/mysql/data/
初始化:
1.有密碼
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
vim /etc/my.cnf{mysql數據庫的主配置文件,端口號、基本目錄、數據目錄}
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
server_id=1
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ 將mysql服務添加爲系統服務
systemctl enable mysqld 啓動MySQL服務
啓動服務:systemct start mysqld
啓動失敗查看錯誤日誌
1.
mkdir /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld/
systemctl start mysqld.service
netstat -atnlp {查看MySQL服務是否啓動}
mysql -uroot -p 登陸數據庫,以後修改密碼
alter user 'root'@'localhost' identified by 'Abc123';
二;接下來進行rpm包進行安裝
其中最簡單的安裝mysql-server服務,只須要安裝以下4個軟件包便可,咱們可使用rpm -ivh命令進行安裝
mysql-community-common-5.7.9-1.el7.x86_64.rpm
mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依賴於common)
mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依賴於libs)
mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依賴於client、common)
接下來是初始化數據庫,咱們使用以下幾條命令都可,效果都是同樣的
mysqld --initialize //新版的推薦此方法,執行生會在/var/log/mysqld.log生成隨機密碼
更改mysql數據庫目錄的所屬用戶及其所屬組,而後啓動mysql數據庫
chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld.service //啓動mysql數據庫服務
三:二進制安裝mysql
首先解壓tar包
將二進制文件移動到/usr/local/mysql目錄下
接下來建立mysql用戶和mysql組
那麼接下來建立data目錄用來存放mysql的數據和log目錄存放日誌文件
接下來設置屬組和屬主並給mysql用戶賦予權限
修改mysql下的/etc/my.cnf文件
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server_id=10
port = 3306
user = mysql
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
#####====================================[innodb]==============================
innodb_buffer_pool_size = 1024M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
innodb_data_file_path=ibdata1:1024M:autoextend
#####====================================[log]==============================
log_error = /usr/local/mysql/log/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /usr/local/mysql/log/mysql-slow.log
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
將,mysql服務添加到系統的環境變量中,方便後續使用mysql服務的時候不用使用絕對路徑
進行mysql初始化:在目錄下對mysqld初始化
bin/mysqld --initialize --user=mysql
添加服務,啓動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
接下來在/usr/local/mysql/log/mysql-err.log日誌中查看祕鑰
登陸mysql數據庫
四:使用腳本方式安裝mysql方式
運行腳本
服務已經成功啓動