CetOS7.4手工編譯安裝mysql-5.7.17(內附源碼包)
MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle旗下產品。MySQL是最流行的關系型數據庫管理系統之一,在WEB應用方面,MySQL是最好的關系數據庫管理系統應用軟件。MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL所使用的SQL語言是用於訪問數據庫的最常用標準化語言。MySQL軟件采用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL作為網站數據庫。
實驗環境
系統環境:centos7.4
yum掛載目錄:/mnt/sr0
相關源碼包下載地址:百度雲下載 密碼:r26y
建步驟
1、添加新硬盤作為解壓目錄
[root@redhat7_5 ~]# fdisk /dev/sdb
[root@redhat7_5 ~]# mkfs.ext4 /dev/sdb1 #格式化分區,寫入系統文件
[root@redhat7_5 ~]# mount /dev/sdb1 /opt/ #掛載至解壓目錄下
[root@redhat7_5 ~]# df -h
2、安裝相關依賴包
[root@redhat7_5 ~]# mount /dev/sr0 /mnt/sr0/ #掛在光盤
[root@redhat7_1 ~]# yum -y install \
ncurses-devel \
bison \
cmake
3、創建進程用戶
[root@redhat7_1 ~]# useradd -s /sbin/nologin mysql
4、解壓相應源碼包
[root@redhat7_1 ~]# tar zxvf mysql-5.7.17.tar.gz -C /opt/
[root@redhat7_1 ~]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@redhat7_1 ~]# cd /usr/local/
[root@redhat7_1 local]# mv boost_1_59_0 boost
5、安裝mysql
[root@redhat7_1 ~]# cd /opt/mysql-5.7.17/
[root@redhat7_1 ~]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
註意:如果在CMAKE的過程中有報錯,當報錯解決後,需要把源碼目錄中的CMakeCache.txt文件刪除,然後再重新CMAKE,否則錯誤依舊
[root@redhat7_1 mysql-5.7.17]# make && make install #時間稍慢,要等待……
6、修改mysql權限
[root@redhat7_1 ~]# chown -R mysql:mysql /usr/local/mysql/
7、編輯主配置文件
[root@redhat7_1 ~]# vim /etc/my.cnf
建議:可以將配置文件的內容刪除,直接拷貝以下內容
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
8、相關優化
[root@redhat7_1 ~]# chown mysql:mysql /etc/my.cnf
[root@redhat7_1 ~]# echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile
[root@redhat7_1 ~]# echo ‘export PATH‘ >> /etc/profile
[root@redhat7_1 ~]# source /etc/profile
9、初始化服務
[root@redhat7_1 ~]# cd /usr/local/mysql/
[root@redhat7_1 mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
10、啟動服務
[root@redhat7_1 ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@redhat7_1 ~]# systemctl daemon-reload
[root@redhat7_1 ~]# systemctl start mysqld
[root@redhat7_1 ~]# systemctl enable mysqld
[root@redhat7_1 ~]# netstat -anpt | grep 3306
11、登錄mysql
[root@redhat7_1 ~]# mysqladmin -u root -p password ‘123‘
[root@redhat7_1 ~]# mysql -u root -p123
CetOS7.4手工編譯安裝mysql-5.7.17(內附源碼包)