1. 程式人生 > >Navicat連接阿裏雲Mysql遇到的的坑

Navicat連接阿裏雲Mysql遇到的的坑

date 分享 阿裏雲 適用於 mov 不能 開始 函數 new

連上去那一刻,心態真是起飛了??

下面筆者總結安裝Mysql開始所遇到的坑(Ps 筆者是阿裏雲的Centos6.8):

ERROR 1045 (28000): Access denied for user [email protected] (using password: NO)

出現類似上面問題的,就是說 你登錄的賬號是需要密碼的,[email protected] 拒絕訪問

先走一遍安裝流程:

1 . 進入系統 使用 su 命令 進入 root 權限。

2 . 使用 rpm -qa mysql 查看是否有存在的老的版本的mysql

3 . 如果存在舊版本的mysql 使用 yum remove mysql 命令刪除

4 . 使用 yum install mysql 命令安裝客戶端數據庫

5 . 使用 yum install mysql-server 命令安裝服務端數據庫

6 . 使用 /etc/init.d/mysqld start 來啟動數據庫

7 . 使用 mysql -u root -p 連接數據庫(因為第一次連接使用,所以沒有密碼 所以可以直接按回車進入)

至此 在Linux下的 Mysql 也算安裝完成了。

下面來為root用戶設置密碼:

我使用的是

1. mysqladmin -u root -p password newpassword 這個命令,不過有弊端,這個方法在設置新密碼後會提示輸入舊的密碼才能設置成功,第一次使用數據庫沒有密碼的 可以使用這個方法,提示輸入舊密碼時直接回車就OK,除此之外 並不適用於忘記已存在的舊密碼的用戶。

2. 由於所有的用戶信息都是存放在mysql庫(默認庫)的user表中,所以只要root用戶登錄到了Mysql的服務器中,適用UPDATE語句就可以直接修改自己的密碼了。

UPDATE語句的語法格式是:

1 UPDATE mysql.user set Password=PASSWORD(new_password) where User=username and Host=hostname‘;
2 例如
3 UPDATE mysql.user set Password=PASSWORD(123456) where User=root and Host=localhost
‘;

記得執行完UPDATE語句後,使用 FLUSH PRIVILEGES重新加載權限表(update語句不能刷新權限表,所以一定要使用FLUSH PRIVILEGES語句刷新權限表,否則修改後的密碼不能生效)

3. 使用SET語句修改root密碼

當用戶登錄到Mysql服務器之後,還可以通過SET語句修改密碼,語法格式如下:

SET PASSWORD=PASSWORD(‘new_password‘);

要註意的是 SET 語句沒有對密碼的加密功能,所以使用PASSWORD()函數進行加密,且密碼需要使用單引號括起來。

上面三種方法應對都是常規情況,方法1區別於方法2/3,方法1不需要登錄到Mysql服務器,方法2/3都是在Mysql服務器對用戶信息表操作完成密碼的更改。

不過往往我們遇到的是一些比較極端的情況,當我們root用戶的密碼丟失了怎麽辦呢,這時我們並不能登錄到Mysql服務器,也不知道舊密碼;這時Mysql提供了對應的應急處理機制,通過特殊的方法登錄到 Mysql服務器:

1. 停止 Mysql 服務

使用 service mysql stop 命令停止

2. 使用 mysqld_safe --skip-grant-tables 命令,可以停止Mysql的權限判斷,也就是說可以任何用戶直接訪問數據庫,並且可以啟東Mysql服務。

3. 執行完第二條命令後,打開新的終端,此時便可以直接登錄Mysql服務,登錄之後的密碼設置操作參考??。

下面講講端口和防火墻的問題

首先要確認的是3306端口是不是對外開放了。Mysql默認狀態是不開放對外訪問的,所以這應該是大多數問題所在。

***開啟3306端口及常用的其它端口***

查看是否有這個文件/etc/sysconfig/iptables,如果沒有

iptables -P OUTPUT ACCEPT

service iptables save 進行保存,默認就保存到了/etc/sysconfig目錄下的iptables文件中

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允許3306數據庫端口通過防火墻

service iptables save

cat /etc/sysconfig/iptables有3306這條信息

service iptables restart就ok咯

Ps: 在Mysql服務下 使用show global variables like ‘port‘ 查看端口號,默認是3306

通過編輯 /etc/my.cnf 使用 port=newport 來修改新的端口。

經常碰到的就是這些問題了,如果上述所有的問題都嘗試過了,還是沒有解決,那麽可以考慮是不是運營商的安全組的問題。

筆者最後的問題就是出在 阿裏雲-安全組上

筆者 設置了遠程主機連接的權限 設置了3306通過防火墻的限制 ,可以navicat還是連接不上Mysql服務,後來 去看了下阿裏雲的安全組,簡單了解下設置了。

bingou 完美解決,尼瑪的??,害我折騰了一上午

技術分享

頂一篇 :http://www.cnblogs.com/meetrice/p/5309666.html

Navicat連接阿裏雲Mysql遇到的的坑