CentOS 6.8編譯安裝MySQL
編輯:狂族晨曦 來源:系統(tǒng)運(yùn)維,經(jīng)驗(yàn)雜筆 日期:2016-08-25 閱讀: 3,123 次 4 條評論 » 百度已收錄
先森來公司試用也有一個半月了,從剛畢業(yè)到現(xiàn)在也成長了很多。運(yùn)維工程師,最基本的當(dāng)屬各種命令,然后是各種服務(wù)的搭建部署了。先森這一個半月也不是白混的,也搭建了很多服務(wù)了,好久沒更新博客了,今天也把先森編譯安裝MySQL的過程寫出來。

MySQL編譯安裝
編譯安裝
1、首先要先查看系統(tǒng)是否已經(jīng)創(chuàng)建過mysql用戶。使用下面的命令查看是否有mysql用戶及用戶組
cat /etc/passwd #查看用戶列表 cat /etc/group #查看用戶組列表
2、如果沒有就創(chuàng)建
groupadd mysql useradd -g mysql mysql
3、解壓安裝包到/usr/local/目錄下,并重命名為mysql。修改/usr/local/mysql權(quán)限:
chown -R mysql:mysql /usr/local/mysql
4、修改配置文件
注:在啟動MySQL服務(wù)時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置文件的默認(rèn)位置!
在CentOS 6.4版操作系統(tǒng)的最小安裝完成后,在/etc目錄下會存在一個my.cnf,需要將此文件更名為其他的名字,如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啟動。
mv /etc/my.cnf /etc/my.cnf.bak
復(fù)制mysql服務(wù)啟動配置文件
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
5、進(jìn)入安裝路徑,執(zhí)行初始化配置腳本,創(chuàng)建系統(tǒng)自帶的數(shù)據(jù)庫和表
cd /usr/local/mysql scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
6、添加到系統(tǒng)服務(wù)、啟動MySQL
添加服務(wù),拷貝服務(wù)腳本到init.d目錄,并設(shè)置開機(jī)啟動
cp support-files/mysql.server /etc/init.d/mysql chkconfig mysql on service mysql start --啟動MySQL
7、添加環(huán)境變量
啟動MySQL后,我們還無法直接使用“mysql”命令進(jìn)入數(shù)據(jù)庫,這時候還需要添加環(huán)境變量。
修改/etc/profile文件,在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH export PATH
保存退出后,運(yùn)行下面的命令,讓配置立即生效
source /etc/profile
8、安全
雖然我們這時候已經(jīng)可以直接進(jìn)入數(shù)據(jù)庫并未數(shù)據(jù)庫用戶設(shè)置密碼了,但是這樣并不安全。MySQL為我們提供了安全配置向?qū)_本mysql_secure_installation
執(zhí)行 /usr/local/mysql/bin/mysql_secure_installation
下面是執(zhí)行后的一些重要交互項(xiàng),中間內(nèi)容省略:
Enter current password for root (enter for none):<–初次運(yùn)行直接回車 ... Set root password? [Y/n] <– 是否設(shè)置root用戶密碼,輸入y并回車或直接回車 New password: <– 設(shè)置root用戶的密碼 Re-enter new password: <– 再輸入一次你設(shè)置的密碼 ... Remove anonymous users? [Y/n] <– 是否刪除匿名用戶,生產(chǎn)環(huán)境建議刪除,所以直接回車 ... Disallow root login remotely? [Y/n] <–是否禁止root遠(yuǎn)程登錄,根據(jù)自己的需求選擇Y/n并回車,建議禁止 ... Remove test database and access to it? [Y/n] <– 是否刪除test數(shù)據(jù)庫,直接回車 ... Reload privilege tables now? [Y/n] <– 是否重新加載權(quán)限表,直接回車
9、如果我們需要給其他數(shù)據(jù)庫用戶設(shè)置密碼,以root為例,執(zhí)行下面的命令設(shè)置密碼:
mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
10、在安全向?qū)е形覀円呀?jīng)關(guān)閉了root用戶遠(yuǎn)程訪問,若因業(yè)務(wù)需要我們由需要設(shè)置root用戶遠(yuǎn)程訪問,那么執(zhí)行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql> flush privileges;
簡單的解釋一下:
*.*是指允許訪問任何數(shù)據(jù)庫與數(shù)據(jù)表;
'root'@'%':root是指定用戶,百分號是允許root用戶從任何網(wǎng)絡(luò)遠(yuǎn)程訪問數(shù)據(jù)庫,也可以是“192.168.2.%”這種形式。
后面的123456就是遠(yuǎn)程訪問的密碼啦,不知道如果跳過上一步的設(shè)置密碼過程,直接在這里設(shè)置密碼,是否也能達(dá)到設(shè)置密碼的效果,先森還沒有嘗試過。如果知道的朋友可以告訴先森一聲。
11、配置防火墻
防火墻的3306端口默認(rèn)沒有開啟,若要遠(yuǎn)程訪問,需要開啟這個端口
打開/etc/sysconfig/iptables
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
然后保存,并關(guān)閉該文件,在終端內(nèi)運(yùn)行下面的命令,重啟防火墻以刷新防火墻配置:
service iptables restart
12、創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
總結(jié)
因?yàn)閿?shù)據(jù)庫可以說是服務(wù)器中最重要的服務(wù)之一了,所以它的安全就顯得尤為重要。下面是先森的一些建議:
1、最好不要設(shè)置遠(yuǎn)程訪問權(quán)限;2、不要開啟防火墻端口或使用默認(rèn)3306端口;
3、盡量不要使用root這種默認(rèn)用戶;
4、保證密碼的復(fù)雜性;
5、做好數(shù)據(jù)庫備份。
當(dāng)然做好數(shù)據(jù)庫的安全不僅僅是以上幾點(diǎn)。但如果連以上幾點(diǎn)都沒有做到,那么數(shù)據(jù)庫就非常危險了。
歷史上的今天:
- 2017: 解決WordPress加入CDN后“非插件瀏覽次數(shù)統(tǒng)計(jì)”瀏覽次數(shù)不刷新問題(6)
- 2015: 圖解人性漫畫:打工與創(chuàng)業(yè)的殘酷區(qū)別(0)
轉(zhuǎn)載請注明出處來自http://www.cnidcc.cn/centos_mysql.html

川公網(wǎng)安備 51011202000104號
確實(shí)不錯
收藏了備用~
不錯哦,持續(xù)更新~
贊一下,故意我之后可能也會用到mysql。不過服務(wù)器版本不知道回事多少。