MySQL5.7版本的三種安裝方式

                 mysql5.7的安裝方式node

安裝MySQL能夠分爲三種方式:{1;源碼編譯、2;二進制安裝、3rpm安裝}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語言家族的習慣(包括CC++C#JavaJavaScriptPerlPython等)。這些特性使JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(通常用於提高網絡傳輸速率)vim

JSON 語法是 JavaScript 對象表示語法的子集。centos

數據在鍵值對中數組

數據由逗號分隔網絡

花括號保存對象socket

方括號保存數組

安裝文件準備

下載cmake-3.5.tar.gz    http://wwwNaNake.org/download/

下載ncurses-5.9.tar.gzftp://ftp.gnu.org/gnu/ncurses/

下載bison-3.0.4.tar.gzhttp://ftp.gnu.org/gnu/bison/

下載mysql-5.7.13.tar.gz

wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz

下載Boost_1_59_0.tar.gz

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"

wKioL1kzgEqSAHRwAAAD83MWjtg801.png-wh_50 

刪除centos系統自帶的mariadb數據庫防止發生衝突

rpm -qa |grep mariadb

rpm -e mariadb-libs --nodeps

wKioL1kzgHDSKErQAAAIdhYxv_M762.png-wh_50 

2安裝依賴包

注: 相關依賴包的做用

cmake因爲從MySQL5.5版本開始棄用了常規的configure編譯方法,因此須要CMake編譯器,用於設置mysql的編譯參數。如:安裝目錄、數據存放目錄、字符編碼、排序規則等。

Boost  #MySQL 5.7.5開始Boost庫是必需的,mysql源碼中用到了C++Boost庫,要求必須安裝boost1.59.0或以上版本

GCCLinux下的C語言編譯工具,mysql源碼編譯徹底由CC++編寫,要求必須安裝GCC

bisonLinuxC/C++語法分析器

ncurses字符終端處理庫

 

安裝cmake工具,後續安裝mysql使用

tar zxvf cmake-3.5.2.tar.gz

cd cmake-3.5.2/

./bootstrap

gmake && gmake install

wKiom1kzgJ3COfYtAAAHPh2CywA918.png-wh_50 

cmake -version

wKiom1kzgLqSqUbHAAAIC3cfFzc577.png-wh_50 

 

cd ..

tar zxvf ncurses-5.9.tar.gz

cd ncurses-5.9/

./configure && make && make install

wKiom1kzgM7C-3B2AAAG3leKNX0811.png-wh_50 

cd ..

tar zxvf bison-3.0.4.tar.gz

cd bison-3.0.4/

./configure && make && make install

wKioL1kzgOPStmaVAAAHOtVx36I676.png-wh_50 

cd ..

tar zxvf boost_1_59_0.tar.gz

mv boost_1_59_0 /usr/local/boost

wKiom1kzgPWTfLByAAAGflRBZrU736.png-wh_50 

建立mysql的用戶和組

groupadd -r mysql

useradd -r -g mysql -s /bin/false -M mysql

wKioL1kzgQnQdIliAAAFlKDYF3Q007.png-wh_50 

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

wKiom1kzgRvgLr3DAABL1HHn4jk354.png-wh_50 

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

wKioL1kzgTKRbqn-AAAKT9splLA031.png-wh_50echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile

source /etc/profile

wKiom1kzgUTBhRgSAAAV3OCFqOY315.png-wh_50 

建立mysql數據庫的數據存儲位置data,以及log日誌存放的位置

mkdir /usr/local/mysql/data -p

mkdir /usr/local/mysql/log

wKioL1kzgVfxq11VAAAXfdUdhLc400.png-wh_50 

調整mysql的屬主屬組以及data目錄設置爲750

chown -R mysql:mysql /usr/local/mysql/

chmod 750 /usr/local/mysql/data/

wKiom1kzgWmicVm5AAAYRg2aNZg794.png-wh_50 

初始化:

1.有密碼

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

wKioL1kzgX7hOqPLAACUUZY2Mws813.png 

 

 

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

wKioL1kzgZTSznfPAAAv_JiwQNs627.png-wh_50 

 

 

 

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/  mysql服務添加爲系統服務

systemctl enable mysqld  啓動MySQL服務

wKioL1kzgaeA-ievAAAU0DR6gP4556.png-wh_50 

啓動服務:systemct start mysqld

wKiom1kzgbjSke4_AAAZGQfYTWM912.png-wh_50 

啓動失敗查看錯誤日誌

wKioL1kzgcmBgotzAACnMO-RR70076.png-wh_50 

1.

mkdir /var/run/mysqld

chown -R mysql:mysql /var/run/mysqld/

wKiom1kzgdyxWkriAAAZo6dPVKs753.png-wh_50 

 

systemctl start mysqld.service

wKioL1kzge3BzEcPAAAP97xR4pc710.png-wh_50 

 

netstat -atnlp {查看MySQL服務是否啓動}

wKiom1kzgf3yQCfGAAAaiODGbrA415.png-wh_50 

 

mysql -uroot -p 登陸數據庫,以後修改密碼

alter user 'root'@'localhost' identified by 'Abc123';

wKiom1kzgg6iIugnAABg1dhE_GE183.png-wh_50 

二;接下來進行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         --(依賴於clientcommonwKioL1kzgiLCKyJNAABGmNuRE1g241.png-wh_50

接下來是初始化數據庫,咱們使用以下幾條命令都可,效果都是同樣的

mysqld --initialize                         //新版的推薦此方法,執行生會在/var/log/mysqld.log生成隨機密碼

wKiom1kzgjWgNf2GAADLL4BhJ04437.png-wh_50 

更改mysql數據庫目錄的所屬用戶及其所屬組,而後啓動mysql數據庫

chown mysql:mysql /var/lib/mysql -R

wKioL1kzgkiBSGLiAAARjMKgGwc709.png-wh_50 

systemctl start mysqld.service            //啓動mysql數據庫服務

wKiom1kzglmTHQ0GAAB5INUnUSQ232.png-wh_50 

三:二進制安裝mysql

首先解壓tar

wKioL1kzgm6CB6A2AAAXKYvhBUs379.png-wh_50 

將二進制文件移動到/usr/local/mysql目錄下

wKioL1kzgn2QeVEkAAAUp5_oL9E442.png-wh_50 

接下來建立mysql用戶和mysql

wKiom1kzgo2iefu3AAAYzXpAIfs748.png-wh_50 

那麼接下來建立data目錄用來存放mysql的數據和log目錄存放日誌文件

wKioL1kzgqyyZUKMAAAYAvMP5Hw141.png-wh_50 

接下來設置屬組和屬主並給mysql用戶賦予權限

wKiom1kzgryiCOsDAAAP3C454qY760.png-wh_50 

修改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服務的時候不用使用絕對路徑

wKioL1kzgtLBg_goAAANzehjpnQ678.png-wh_50 

進行mysql初始化:在目錄下對mysqld初始化

 

    bin/mysqld  --initialize  --user=mysql

wKiom1kzguHzNwQOAAARYH6n9XY357.png-wh_50 

添加服務,啓動

 

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    service mysqld start

wKiom1kzgvPAcxEaAAAWvOfzoNE502.png-wh_50 

接下來在/usr/local/mysql/log/mysql-err.log日誌中查看祕鑰

wKioL1kzgwOhUw2CAAAuQra44I0155.png-wh_50 

登陸mysql數據庫

wKioL1kzgxXhiunuAABqCivh8sE937.png-wh_50 

四:使用腳本方式安裝mysql方式

wKiom1kzgyiBK6t_AABjy2F8HKI521.png-wh_50 

運行腳本

wKiom1kzg0Ly-232AAAJSkRjpQk960.png-wh_50 

服務已經成功啓動

wKioL1kzg1iTTUPkAAAN_v0ymWQ465.png-wh_50 

相關文章
相關標籤/搜索