最近因為公司的伺服器需要做基線和漏洞掃描,基線方面問題不大,按照報告上的加固建議,選一些權重高的問題處理一下就好了。但是漏洞掃描就比較坑了,掃出來了十幾個高危和一百六十多個中危漏洞,不過還好漏洞基本上都出在openSSH和mysql上,升級一下這兩個的版本就好了。因為是雲主機openSSH不敢亂動, ...
最近因為公司的伺服器需要做基線和漏洞掃描,基線方面問題不大,按照報告上的加固建議,選一些權重高的問題處理一下就好了。但是漏洞掃描就比較坑了,掃出來了十幾個高危和一百六十多個中危漏洞,不過還好漏洞基本上都出在openSSH和mysql上,升級一下這兩個的版本就好了。因為是雲主機openSSH不敢亂動,所以我們先把mysql升級到最新版。centos並不能像window簡單快捷的直接運行升級包,所以我們採取的方式是卸載重裝。
卸載mysql
首先把資料庫裡面的數據備份一下
$> mysqldump -u root -p --all-databases > backdb.sql
輸入密碼即可開始備份,完成後的備份文件會放在當前目錄里,用 ll 命令即可看到
通過 whereis mysql 和 which mysql 來查找mysql文件夾,通過rm命令刪除文件夾,刪除 /etc/my.cnf配置文件
查看當前mysql: rpm -qa|grep mysql
沒有顯示任何內容可進行下一步,如果有輸出的話通過 yum remove 後面跟上一行輸出的mysql內容進行刪除
刪除完mysql後,可以準備開始重新安裝了。
下載mysql
因為伺服器是純內網的,所以只能通過源碼來進行安裝。mysql下載:https://dev.mysql.com/downloads/mysql/
自行選擇你需要下載的版本,因為之前安裝的是5.7,所以為了保證數據不出現問題,這次仍然準備安裝5.7。
最新的版本是5.7.27,其他的按圖片上的選擇,64位或32位則要看系統本身了可以通過 getconf LONG_BIT 命令查看。
安裝mysql
下載完成後上傳到伺服器里的 /usr/local/ 目錄下
解壓: tar -zxvf (文件名) 然後通過 mv 命令將文件夾名修改為mysql
創建用戶組和用戶
用戶組: groupadd mysql
用戶: useradd -r -g mysql mysql
給mysql用戶指定專有用戶和用戶組
進入mysql文件夾:cd /usr/local/mysql
創建data目錄:mkdir data
指定用戶和用戶組
cd /usr/local/
chown -R mysql mysql/
chgrp -R mysql mysql/
初始化mysql
進入bin目錄:cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
記住最後面的的臨時密碼,如果忘記密碼或者想重新初始化,可以先將mysql/data目錄中文件刪除,然後再執行初始化命令。
配置my.cnf
vi /etc/my.cnf 沒有的話會自動創建
輸入如下內容:
[mysqld] basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/
啟動mysql
cd /usr/local/mysql/bin
./mysqld_safe --user=mysql &
我實際上在走到這一步的時候出現了bug,輸出顯示linxu守護進程已經啟動,但是 ps -ef|grep mysql 始終找不到mysql進程,這個時候如果你去百度的話,會得到各種各樣的答案,可能對你並不適用,最好的方式是去看mysql的錯誤日誌,一般存放在mysql目錄下的data文件夾里尾碼是.err。如果沒有的話可以通過 find / -name 主機名.err 命令查找,主機名可以通過 hostnamectl 命令查看。通過報錯來查找問題就會更有針對性,後來發現我配置文件里少打了兩個字母,粗心害死人啊!!!
登陸mysql
cd /usr/local/mysql/bin
登錄:./mysql -u root -p
登錄上mysql之後,必須先修改密碼才能進行其他操作
修改密碼: set password=password("root");
登錄授權:grant all privileges on *.* to'root' @'%' identified by 'root';
授權生效: flush privileges;
至此mysql的安裝升級以及完成了,現在就是把之前備份的文件導回到mysql裡面了
進入一個資料庫: use mysql;
設置編碼: set names utf8;
導入sql文件: source ....../backdb.sql;