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
配置命令中,各選項的含義:
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