1. 程式人生 > >MySQL數據庫的編譯安裝

MySQL數據庫的編譯安裝

tps default 引擎 pro cto 重命名 HERE ESS efault

簡介

MySQL是一種開放源代碼的關系型數據庫管理系統(RDBMS),MySQL數據庫系統使用最常用的數據庫管理語言--結構化查詢語言(SQL)進行數據庫管理。MySQL關系型數據庫於1998年1月發行第一個版本。它使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(APIs),支持多種字段類型並且提供了完整的操作符支持查詢中的SELECT和WHERE操作。

實驗環境

系統環境:centos 7

宿主機IP地址:192.168.100.201

yum掛載目錄:/mnt/sr0

相關源碼包鏈接:https://pan.baidu.com/s/1f3v-qM-vwK-nT-EKEScZkQ 密碼:t927

mysql-5.7.17.tar.gz 軟件包的安裝目錄空間最小不少於8G,否則make完成後會報警空間不足!

實驗目標

搭建出MySQL數據庫基礎服務

實驗步驟

1.安裝環境包

yum -y install \
ncurses \ #提供字符終端處理庫
ncurses-devel \ #字符終端下屏幕控制的基本庫
bison \ #gcc gcc-c++的語法分析器
cmake #跨平臺的安裝工具

2.源碼編譯及安裝

(1)創建運行賬戶

useradd -s /sbin/nologin mysql
(2)解包
tar zxvf mysql-5.7.17.tar.gz -C /opt/

tar zxvf boost_1_59_0.tar.gz -C /usr/local/ #c++運行庫
cd /usr/local/ #需要指向的路徑,便於識別
mv boost_1_59_0 boost #重命名

(3)配置
cd mysql-5.7.17/

 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \         #安裝目錄
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \   #連接文件
-DSYSCONFDIR=/etc \                        # mysql配置文件存在路徑
-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 \         #支持c++運行庫
-DWITH_SYSTEMD=1                      #使系統支持mysql

(4)編譯及安裝
make && make install
技術分享圖片
備註:此過程等待時間很長,約40分鐘左右,要有心理準備!
3.安裝後的調整

(1)對數據庫目錄進行權限設置
[root@localhost etc]# chown mysql:mysql /etc/my.cnf
[root@localhost etc]# ls -l | grep "my.cnf" #查看權限
-rw-r--r--. 1 mysql mysql 728 8月 23 02:15 my.cnf #權限已改為mysql
drwxr-xr-x. 2 root root 31 7月 28 04:14 my.cnf.d

(2)建立配置文件
[root@localhost mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf #創建配置文件
[root@localhost mysql-5.5.24]# vim /etc/my.cn #修改配置文件

[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

(3)初始化數據庫
cd /usr/local/mysql/

bin/mysqld --initialize-insecure \           #生成數據庫密碼,為空
--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

(4)設置環境變量
echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile #環境變量文件
echo ‘export PATH‘ >> /etc/profile #設置全局模式
source /etc/profile #執行使其生效

4.添加系統服務

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #復制啟動腳本
systemctl daemon-reload #刷新識別啟動腳本
systemctl start mysqld #啟動MySQL

netstat -anpt | grep 3306 #查看端口

systemctl enable mysqld #添加開機自啟動

mysqladmin -u root -p password "abc123" #設置登陸密碼
mysql -uroot –p123 #登錄mysql
技術分享圖片

5.實現遠程登錄
grant all privileges on . to ‘root‘@‘%‘ identified by ‘abc123‘ with grant option; #設置權限,實現遠程登陸

MySQL數據庫的編譯安裝