MySQL數據庫的編譯安裝
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/
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數據庫的編譯安裝