在阿里云服務器上(centos7)下載好了mysql并安裝上去,但是暫未設置賬號密碼,遠程登陸mysql并不可行。
這里有兩個問題需要我們去解決:設置賬號密碼;遠程登陸mysql
(一)設置賬號密碼
(1)登陸遠程服務器
(2)查看mysql版本,并用root賬號登陸到mysql中
mysql -v
上面這個截圖是我已經進去mysql數據庫中了,如果沒有到這個界面的,我們可以使用mysql -u root -p
輸入密碼并進入到mysql中。
(3) 創建test賬號,并設置密碼pwd123456
使用的mysql語句為:
grant all on *.* to test@'127.0.0.1' identified by "pwd123456";
當輸出為:
就是創建成功了。
(4)切換到mysql 數據庫,給test設置訪問權限。
mysql語句:use mysql;
(5)修改test的權限。
mysql語句:update user set host = '%' where user = 'test';
(6)查看user表是否修改成功
mysql語句:select user,host from user where user="test";
%
說明修改成功,任何ip都可以進行訪問
(7) 更新數據庫:
mysql語句:flush privileges;
到這里我們就把mysql的賬號密碼給添加上去了,如果要添加多個賬號跟密碼,重復操作上面的步驟即可。下面我們需要實現遠程登陸。
(二)實現遠程登陸
關于本機能登陸mysql,但是遠程登陸不上去,往往是防火墻未關閉或者3306端口未開放的情況下
(1)阿里云的安全組策略里查看一下是否進行了3306端口的遠程訪問
安全組策略的問題:我們可以參考前幾日寫過的這篇文章:
新買阿里云linux服務器如何設置賬號密碼xshell遠程登陸
在這里我們只需多打開一個端口:3306端口即可
(2) 關閉防火墻,開放3306端口
CentOS 7.0默認使用的是firewall作為防火墻,這里改為iptables防火墻。
1、關閉firewall:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
2、安裝iptables防火墻
yum install iptables-services -y
3.啟動設置防火墻
systemctl enable iptables
systemctl start iptables
4.查看防火墻狀態
systemctl status iptables
5 編輯防火墻,增加端口
vi /etc/sysconfig/iptables #編輯防火墻配置文件
-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 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq! #保存退出
3.重啟配置,重啟系統
systemctl restart iptables.service #重啟防火墻使配置生效
systemctl enable iptables.service #設置防火墻開機啟動
注意:以上操作如果出現xxx command not found 的情況,我們只要sudo yum install xxx 就可以了,然后會自動給下載的。
4 調試3306端口是否能登陸上去
使用命令:
[admin@izbp11722iq94py8qx691sz ~]$ sudo iptables -L -n
在win下使用本地mysql工具Navicat 測試一下
這樣我們就實現了遠程登陸mysql數據庫。