Linux下徹底卸載mysql詳解
一道宅、使用以下命令查看當前安裝mysql情況湃交,查找以前是否裝有mysql
rpm -qa|grep -i mysql
可以看到安裝如下圖的所示:
2镀首、停止mysql服務、刪除之前安裝的mysql
刪除命令:rpm -e –nodeps 包名
rpm -ev MySQL-client-5.5.25a-1.rhel5
rpm -ev MySQL-server-5.5.25a-1.rhel5
如果提示依賴包錯誤伯复,則使用以下命令嘗試
rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps
如果提示錯誤:error: %preun(xxxxxx) scriptlet failed, exit status 1
則用以下命令嘗試:
rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5
3慨代、查找之前老版本mysql的目錄、并且刪除老版本mysql的文件和庫
find / -name mysql
查找結果如下:
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
刪除對應的mysql目錄
rm
-rf
/var/lib/mysql
rm
-rf
/var/lib/mysql
rm
-rf
/usr/lib64/mysql
具體的步驟如圖:查找目錄并刪除
注意:卸載后/etc/my.cnf不會刪除边翼,需要進行手工刪除
rm -rf /etc/my.cnf
4鱼响、再次查找機器是否安裝mysql
rpm -qa|grep -i mysql
無結果,說明已經卸載徹底组底,接下來直接安裝mysql即可丈积。
mysql安裝
在CentOS中默認安裝有MariaDB,這個是MySQL的分支债鸡,但為了需要江滨,還是要在系統(tǒng)中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB厌均。
1 下載并安裝MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下載了安裝用的Yum Repository唬滑,大概25KB的樣子,然后就可以直接yum安裝了棺弊。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就開始安裝MySQL服務器晶密。
[root@localhost ~]# yum -y install mysql-community-server
這步可能會花些時間,安裝完成后就會覆蓋掉之前的mariadb模她。
至此MySQL就安裝完成了稻艰,然后是對MySQL的一些設置。
2 MySQL數(shù)據庫設置
首先啟動MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL運行狀態(tài)侈净,
[root@localhost ~]# systemctl status mysqld.service
運行狀態(tài)如圖:
此時MySQL已經開始正常運行尊勿,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日志文件中找出密碼:
[root@localhost ~]# grep "password" /var/log/mysqld.log
如下命令進入數(shù)據庫:
[root@localhost ~]# mysql -uroot -p
輸入初始密碼畜侦,此時不能做任何事情元扔,因為MySQL默認必須修改密碼之后才能操作數(shù)據庫:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
這里有個問題,新密碼設置的時候如果設置的過于簡單會報錯:
原因是因為MySQL有密碼設置的規(guī)范旋膳,具體是與validate_password_policy的值有關:
MySQL完整的初始密碼規(guī)則可以通過如下命令查看:
mysql> SHOW VARIABLES LIKE 'validate_password%';
密碼的長度是由validate_password_length決定的澎语,而validate_password_length的計算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
我的是已經修改過的,初始情況下第一個的值是ON,validate_password_length是8咏连《⑺铮可以通過如下命令修改:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
設置之后就是我上面查出來的那幾個值了鲁森,此時密碼就可以設置的很簡單祟滴,例如1234之類的。到此數(shù)據庫的密碼設置就完成了歌溉。
但此時還有一個問題垄懂,就是因為安裝了Yum Repository,以后每次yum操作都會自動更新痛垛,需要把這個卸載掉:
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
navicat for mysql 鏈接時報錯:1251-Client does not support authentication protocol requested by server
主要原因是mysql服務器要求的認證插件版本與客戶端不一致造成的。
解決方法:
我不希望更新本地的客戶端版本,想直接使用原來的環(huán)境來鏈接桶错。
解決方法是將root的plugin改成mysql_native_password桃移。相當于降了一級。
mysql官方網站提供了從mysql_old_password升級到mysql_native_password蹂析,我們可以仿照這個舔示。官方原文如下:
這里改成:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
網上大部分是('root'@'localhost' )這樣會導致本地docker虛擬機安裝的mysql依舊登錄不上,把localhost改成%就解決了,最好兩個都執(zhí)行一下,不然可能Navicat能連接上,服務器本地反而連接不上,賊坑!
這行代碼有兩層含義,第一:修改root的密碼為'123456'电抚,摒棄原來的舊密碼惕稻。第二:使用mysql_native_password對新密碼進行編碼。
大功告成!