一、忘記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
至此全部大功告成!