Navicat連接阿裏雲Mysql遇到的的坑
連上去那一刻,心態真是起飛了??
下面筆者總結安裝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遇到的的坑