編譯安裝MySQL數據庫系統

Apache HTTP Server做爲優秀的Web服務器軟件,提供了面向用戶的前端應用功能。在實際生產環境中,爲了提供更豐富、更強大的Web應用功能,每每還須要有後臺數據庫、網頁編程語言等多種角色的支持。前端

做爲一名合格的運維工程師,在Linux系統中搭建MySQL服務系統也是必備的技能之一。mysql

MySQL是一個真正的多線程,多用戶的SQL數據庫服務,憑藉其高性能,高可靠和易於使用的特性,成爲服務器領域中最受歡迎的開源數據庫系統。在2008年之前,MySQL項目由MySQL AB公司進行開發、發佈和支持,以後歷經Sun公司收購MySQL AB公司,Oracle公司收購Sun公司的過程,目前MySQL項目由Oracle公司負責運營和維護。sql

爲了確保MySQL數據庫功能的完整性、可定製性,咱們決定採用源代碼編譯安裝的方式安裝MySQL數據庫系統。MySQL 5.X系統版本的使用最爲普遍,該版本的穩定性、兼容性都不錯,咱們以mysql-5.6.36.tar.gz爲例。其官方網站爲:https://www.mysql.com/數據庫

編譯安裝MySQL所需源代碼包:
cmake源碼包網盤下載連接:https://pan.baidu.com/s/15Q78GrbKDGWV2Tp_eAp1eg
提取碼:85h5
mysql源碼包網盤下載連接:連接連接:https://pan.baidu.com/s/184xcuSv5m1JHeLvIw-ssmg
提取碼:sek3 編程

編譯安裝MySQL步驟:vim

1、準備工做bash

1.爲了不發生端口衝突、程序衝突等現象,建議先查詢MySQL軟件的安裝狀況。若是有,建議卸載!服務器

[root@localhost ~]# rpm -q mysql-server mysql              
未安裝軟件包 mysql-server 
未安裝軟件包 mysql

2.安裝提供字符終端上使用的mysql基本庫,以便使用mysql終端上更好的使用命令,避免亂碼。多線程

[root@localhost ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-13.20130511.el7.x86_64.rpm 
//安裝系統盤自帶的ncurses-devel包

3.MySQL 5.X系統版本須要cmake編譯安裝,因此先安裝cmake包。運維

[root@localhost ~]# tar zxf cmake-2.8.6.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/cmake-2.8.6/
[root@localhost cmake-2.8.6]# ./configure && gmake && gmake install

2、源碼編譯及安裝

1.建立運行用戶
爲了增強數據庫服務的權限控制,建議使用專門的運行用戶,如mysql。此用戶不須要直接登陸到系統,能夠不建立宿主文件夾。

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql

2.解包
將下載的mysql源代碼解壓,並切換到解壓後的目錄。

[root@localhost ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/mysql-5.6.36/

3.配置
在實際環境中,能夠會用到多種字符集的網頁,相應地數據庫系統也應該支持不一樣的字符集編碼。在配置過程當中,能夠將默認使用的字符集設置爲utf-8,並添加其餘字符集的支持。

[root@localhost mysql-5.6.36]# cmake \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=all

配置命令中,各選項的含義:
編譯安裝MySQL數據庫系統

4.編譯並安裝

[root@localhost mysql-5.6.36]# make && make install

3、安裝後的其餘調整

1.對數據庫目錄進行權限設置

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql

2.創建配置文件
CentOS 7系統下默認支持MariaDB數據庫,所以系統默認的/etc/my.cnf配置文件中是MariaDB的配置文件,在啓動MySQL數據庫以前,建議將原有的my.cnf文件替換爲MySQL提供的配置文件內容。

[root@localhost ~]# rm -rf /etc/my.cnf                       //將原來etc文件夾下的my.cnf文件刪除
[root@localhost ~]# cp /usr/src/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf
//經過mysql自己的配置文件模板生成mysql配置文件

3.初始化數據庫
爲了可以正常使用MySQL數據庫系統,應以運行用戶mysql的身份執行初始化腳本 mysql_install_db, --basedir表示指定數據程序目錄、--datadir表示數據存放目錄。

[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db \
 --user=mysql --basedir=/usr/local/mysql   --datadir=/usr/local/mysql/data/

4.設置環境變量
爲了方便在任何目錄下使用mysql命令,須要在/etc/profile設置環境變量。

[root@localhost ~]# echo $PATH                        //查看環境變量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
//將mysql可執行命令腳本絕對路徑放在環境變量默認的路徑中

這種方式臨時生效,重啓系統將丟失,想要永久生效:

[root@localhost ~]# vim /etc/profile
                          …………     /省略部份內容
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
//前面是系統默認路徑,請編寫最後一條路徑
[root@localhost ~]# . /etc/profile
//當即生效,讀取配置文件

四.添加爲系統服務
若但願添加mysqld系統服務。以便經過systemctl進行管理。首先:

[root@localhost ~]# cp /usr/src/mysql-5.6.36/support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
//將mysql源碼包的啓動服務的腳本複製到安裝目錄,並更名爲mysqld.sh
[root@localhost ~]# chmod +x /usr/local/mysql/bin/mysqld.sh
//賦予執行權限

三種啓動mysql的方法(其中兩種是添加爲系統服務,一種是mysql源碼包中提供的服務腳本)

第一種添加爲系統服務的方法:

[root@localhost ~]# cp /usr/local/mysql/bin/mysqld.sh /etc/init.d/mysqld
//複製mysql服務腳本到指定目錄
[root@localhost ~]# vim /etc/init.d/mysqld                     
//編寫配置文件,添加如下兩行
#!/bin/bash
# chkconfig: 2345 86 36
                    ………………                   //省略部份內容
[root@localhost ~]# chkconfig --add mysqld
//添加爲系統服務
[root@localhost ~]# systemctl start mysqld
//啓動服務成功
[root@localhost ~]# netstat -anpt | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      68867/mysqld     
//mysql服務默認的TCP端口是3306
[root@localhost ~]# chkconfig  --level 2345 mysqld on
//設置爲開機自啓動

第二種添加爲系統服務的方法:

[root@localhost ~]# vim /usr/lib/systemd/system/mysqld.service
//建立mysql系統服務的配置文件並編輯
[Unit]
Description=MYSQL Server
After=network.target

[Service]
User=mysql                //指定程序運行的用戶帳號
Group=mysql               //指定程序運行的組帳號

Type=forking
PIDFile=/usr/local/mysql/data/localhost.localdomain.pid   //localhost.localdomain爲當前的主機名
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop

[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl start mysqld
//啓動服務成功,並查看端口信息
[root@localhost ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      68867/mysqld 
[root@localhost ~]# systemctl enable mysqld
//設置爲開機自啓動

啓動服務時,若是出現錯誤,建議使用:

[root@localhost ~]# systemctl daemon-reload
//重載服務配置項

這兩種方式這裏就很少說了,若是有不明白的,能夠參考博文CentOS 7 利用Apache搭建Web網站服務,裏面有詳細的介紹。

第三種方法啓動方法

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe &
//使用mysql服務自帶的工具mysqld_safe來啓動服務,
//而且放入後臺執行,不然會佔用前臺終端的資源
[1] 69469
[root@localhost ~]# 190718 01:54:05 mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
190718 01:54:05 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@localhost ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      69549/mysqld 
[root@localhost ~]# mysqladmin shutdown
//中止服務
[root@localhost ~]# netstat -anpt | grep mysqld
相關文章
相關標籤/搜索