centos7一鍵徹底刪除和重裝mysql (媽媽再也不用擔心我一條條複製粘貼命令啦)

考研去了,幾個月沒管項目,今天一打開數據庫掛了,各種問號,按照網上一些步驟執行命令卻把mysql徹底搞崩了,突然料到可能是因爲我阿里雲裝的寶塔面板還有一堆其他東西導致相同的命令別人行我卻不行,無奈,乾脆寫一個從頭到尾自動刪除和重裝mysql的腳本,最好是能一執行完就能直接navicat連接的那種!

先直接看效果:

(徹底刪除mysql的部分截圖)

(自動配置mysql的部分截圖)

(對,然後就連接成功了)

shell腳本代碼如下:

當然你也可以直接在github上下載最新版本:點這裏

#刪除mysql及其相關依賴包
echo "正在刪除mysql及其相關依賴包..."
rpm -qa | grep -i mysql | xargs rpm -e --nodeps
echo "Done."

#刪除mysql所涉及的安裝目錄
echo "正在刪除mysql所涉及的安裝目錄..."
whereis mysql | xargs rm -rf
echo "Done."

#刪除所有和mysql相關的目錄
echo "正在刪除所有和mysql相關的目錄..."
find / -name mysql | xargs rm -rf
echo "Done."

#刪除所有配置文件
echo "正在刪除所有配置文件..."
find / -name my.cnf* | xargs rm -rf
echo "Done."

echo "正在刪除mysql開機自啓動服務..."
#刪除mysql開機自啓動服務
chkconfig --del mysqld
echo "Done."

#解決yum被鎖的情況
echo "正在防止yum被鎖..."
rm -f /var/run/yum.pid
echo "Done."

##   爲了解決'安裝mysql安裝源'步驟時發生如下錯誤:
#    Warning: RPMDB altered outside of yum.
#    Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
#    2:postfix-2.10.1-6.el7.x86_64 has missing requires of libmysqlclient.so.18()(64bit)
#    2:postfix-2.10.1-6.el7.x86_64 has missing requires of libmysqlclient.so.18(libmysqlclient_18)(64bit)

echo "正在安裝Deltarpm包(增量 RPM 套件)..."
yum provides '*/applydeltarpm'  #安裝Deltarpm包(增量 RPM 套件)
yum install deltarpm -y
echo "Done."

echo "正在配置正確的yum源..."
echo "Done."

yum install epel-release -y #配置正確的yum源
echo "正在清除本地yum緩存..."
yum clean all  ##清除本地yum緩存
echo "Done."

echo "正在同步本地軟件和epel源的軟件包信息..."
yum distro-sync ##同步本地軟件和epel源的軟件包信息
echo "Done."

#下載MySQL安裝
echo "正在下載MySQL安裝包..."
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
echo "Done."

#安裝mysql安裝源
echo "正在安裝mysql安裝源..."
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
echo "Done."

#在線安裝MySQL
echo "正在安裝MySQL...."
yum -y install mysql-community-server
echo "Done."

#啓動MySQL服務
echo "正在啓動MySQL服務..."
systemctl start mysqld
echo "Done."

#設置開機啓動
echo "正在配置開機自啓..."
systemctl enable mysqld
systemctl daemon-reload
echo "Done."

#防火牆開放3306端口
echo "正在開放3306端口..."
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
echo "Done."

#配置mysql默認編碼爲utf-8
echo "配置mysql默認編碼爲utf-8..."
echo "character_set_server=utf8" >> /etc/my.cnf
echo "init_connect='SET NAMES utf8'" >> /etc/my.cnf
echo "Done."

#從mysqld.log文件中找到臨時生成的密碼所在行
PWD=`cat /var/log/mysqld.log | grep root@localhost`
#截取獲取密碼
PWD=${PWD##*:}
echo "------------------------------- Note ------------------------------------"
echo "mysql5.7默認密碼策略要求密碼必須是大小寫字母數字特殊字母的組合,至少8位"
echo "你的臨時密碼:"$PWD"             your temporary password:"$PWD
echo "-------------------------------------------------------------------------"
echo ""
echo "接下來你只需要一步步複製執行即可"
echo "step1.  mysql -u root -p"
echo "step2.  ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';"
echo "step3.  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YOUR_PASSWORD' WITH GRANT OPTION;"
echo "step4.  FLUSH PRIVILEGES;"
echo "step5.  EXIT"
echo "step6.  systemctl restart mysqld"
(溫馨提示:1.請在root下執行 2.同時保證腳本文件有權執行 3.重裝前最好把你mysql數據導出來)

 

發佈了38 篇原創文章 · 獲贊 42 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章