一、忘記mysql的root密碼,重置失敗,重新安裝mysql
以前安裝了mysql,不經意把root密碼忘了,就按照網上操作即更改my.cnf配置檔案
0、MySQL 版本檢視
mysql --version

1、用指令編輯/etc/my.cnf配置檔案,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf
2.在[mysqld]下添加skip-grant-tables,然後儲存并退出
3.重新開機mysql服務:service mysqld restart
但是重新開機不起來,始終找不出原因,就想删了重裝吧。剛好再練習一下。但又出了很多問題。記錄如下:
二、删除原先已經安裝的mysql
檢視是否已安裝mysql
rpm -qa |grep mysql
有的話删除對應元件
然後用yum remove 檔案名。如:
依次删除以上三個檔案。
三、重新安裝mysql
首先要查詢一下自己的centos是多少位的系統,然後再安裝。我就是一開始沒看,安裝了64位的系統,嘗試了yum安裝和rpm安裝的方式,都不成功。
尤其是rpm安裝是,總提示缺少依賴。見下圖。
後來看到一個文章發現可能是安裝的mysql版本不對。(見https://blog.csdn.net/sunbrightness/article/details/80642925)
于是查詢了自己的centos系統版本,方法是:
于是,按照以上方法操作:
可以看出,是32位的系統。初步判斷問題應該在安裝方法上。
至此,原mysql已經删除幹淨,可以重新安裝了。
(一)rpm方式安裝。
1、首先找到rpm包
進入官網:https://dev.mysql.com/downloads/mysql/
進入後,選擇
2、下載下傳後就可以上傳安裝了,通過filezilla上傳到centos的 /var/tmp 檔案夾下
3、進入var/tmp,輸入md5sum 檔案名,進行md5校驗
将其結果與下載下傳頁面上的md5值對比,如果一樣,證明檔案沒問題。可以放心解壓安裝。
(此為示意圖)
4、解壓檔案
#tar -xvf mysql-5.7.23-1.el6.i686.rpm-bundle.tar
5、依次将以上檔案拷貝到/usr/local/mysql檔案夾。
6、進入mysql檔案夾
7、依次安裝包含common libs client server deve的包
一開始隻安裝了前四個,最後一個沒安裝,導緻啟動不起來,把develop這個包裝上後,就啟動正常了
8、擷取mysql的root随機密碼
因為root使用者預設是空密碼,是以輸入mysql -u root -p 後
提示不能進入,主要因為為了加強安全性,MySQL5.7為root使用者随機生成了一個密碼,在error log中,關于error log的位置,如果安裝的是RPM包,則預設是/var/log/mysqld.log。隻有啟動過一次mysql才可以檢視臨時密碼。
grep 'temporary password' /var/log/mysqld.log(如果之前安裝過MySQL則這裡可能會有多個密碼,用最後一個,注意這個密碼輸入時是可以粘貼的)
9、修改mysql的root密碼
使用預設的密碼登陸
mysql -uroot -p(這是一個MySQL的以密碼登入root使用者的指令)
修改密碼(注意,登入後的操作後面都最好要有;結尾)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你新設的密碼';
至此root密碼修改完成。
10、開啟mysql的遠端通路權限
在Linux中裝上mysql之後,發現windows中用navicat連接配接資料庫失敗,這是由于預設mysql的使用者是沒有遠端通路的權限的,是以當navicat程式跟mysql資料庫不在同一台伺服器上時,我們需要開啟mysql的遠端通路權限才能正常通路mysql資料庫。同時要在防火牆開始3306端口。
采用改表法設定mysql遠端通路權限;
//登入資料庫
mysql -u root -p
>use mysql;
//%為所有ip都可以遠端通路
mysql>update user set host = '%' where user = 'root';
//或直接添加一條語句也行
mysql>insert into user (host,user,password) values('192.168.0.51','root',password('123'));
//檢視一下修改
mysql>select host, user from user;
//推送設定到記憶體或重新開機伺服器也行(很關鍵,一開始沒輸入這一行,導緻始終連接配接不上)
mysql>FLUSH PRIVILEGES;
11、開啟centos防火牆3306端口方法
1)打開防火牆配置檔案
vi /etc/sysconfig/iptables
2)增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3)更改後的防火牆配置檔案
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
4)儲存後重新開機防火牆
service iptables restart
至此全部大功告成!