遠端連線阿里雲伺服器的'本地'MySQL資料庫
阿里雲最近搞活動,學生價10塊一個月,於是乎找研究僧同學買了半年玩玩。
正常情況下買了伺服器之後還要買資料庫,但是我只是用來做測試,所以沒必要再買幾十塊一個月的買資料庫。
伺服器我買的是市場映象並且已經裝好了Ubuntu+MySQL+Apache+PHP環境,所以就想著和在本地開發一樣,有了MySQL就沒必要再單獨買資料庫。
OK,實現做一些宣告吧:
1.我是用的是Mac的OS X EI Captian系統,版本:10.11.1
2.所有連結以及操作均在終端完成
3.鑑於一些原因,
伺服器地址為:123.456.789.123
資料庫密碼為:databasePassword
例項名(也就是登陸遠端伺服器之後的系統名字):iZ28wfqwhqyZ
再囉嗦一下,遠端登入資料庫無非需要三個資料:資料庫所在的IP,登陸資料庫的賬號,登入密碼。
並且在登入前確定遠端的資料庫開啟了遠端連線。
下面粗略說說我從買完伺服器到連線資料庫成功的過程:
1.連線遠端伺服器:
這裡我在終端用ssh連線,因為Mac系統自帶了ssh服務,
在終端輸入以下指令:
localhost:~ info$ ssh root@123.456.789.123
會顯示:
root@123.456.789.123's password:
熟悉Linux系統的朋友都知道,輸密碼是不會顯示的,所以這裡要輸入你在買伺服器時,設定的登入伺服器的密碼,輸入完成之後會顯示:
Welcome to aliyun Elastic Compute Service!
Last login: Fri Nov 27 13:40:57 2015 from 123.456.789.123
root@iZ28wfqwhqyZ:~#
2.獲取MySQL的賬號及密碼
初次使用的時候,MySQL的密碼放在/alidata/account.log裡面
所以通過以下的指令去檢視密碼:
root@iZ28wfqwhqyZ:~# cd /alidata
root@iZ28wfqwhqyZ:/alidata# vim account.log
################## ########################################################
#
# thank you for using aliyun virtual machine
#
##########################################################################
FTP:
account:與本次無關
password:與本次無關
MySQL:
account:root
password:databasePassword
記住這個賬號密碼,作為遠端登入資料庫的賬號密碼。
退出vim編輯器。
3.修改MySQL的遠端連線許可權
root@iZ28wfqwhqyZ:~# mysql -h 127.0.0.1 -u root -pdatabasePassword
輸完這個你應該會看到:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.37-log MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
這表示你進去了MySQL,注意看最後一行;
mysql>use mysql;
mysql>update user set host = ’%’ where user = ’root’;
如果出現
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
說明已經存在host是%的了;
MySQL> select host from user where user = 'root';
顯示:
+-----------------------+
| host |
+-----------------------+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+-----------------------+
3 rows in set (0.00 sec)
繼續輸入:
MySQL>flush privileges;
flush privileges 命令本質上的作用是將當前user和privilige表中的使用者資訊/許可權設定從mysql庫(MySQL資料庫的內建庫)中提取到記憶體裡。MySQL使用者資料和許可權有修改後,希望在”不重啟MySQL服務”的情況下直接生效,那麼就需要執行這個命令。通常是在修改ROOT帳號的設定後,怕重啟後無法再登入進來,那麼直接flush之後就可以看許可權設定是否生效。而不必冒太大風險–摘自百度知道–回答者:talorkitty
OK 此時已經修改了MySQL的遠端連線許可權,遠端登入吧~