1. 程式人生 > >遠端連線阿里雲伺服器的'本地'MySQL資料庫

遠端連線阿里雲伺服器的'本地'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的遠端連線許可權,遠端登入吧~