為了給服務(wù)器一個(gè)真實(shí)的運(yùn)行環(huán)境,今天在內(nèi)網(wǎng)中部署了一臺UbuntuLinux服務(wù)器,其中最頭疼的就是MySQL的安裝,apt下載更新的速度太慢了,于是就自行編譯了一下MySQL的源碼,具體的編譯方法可以參考網(wǎng)上的一些資料吧,這里只對如何開始MySQL的遠(yuǎn)程訪問功能做個(gè)簡單的講述: (1)確認(rèn)一下3306是否對外開放,MySQL默認(rèn)狀態(tài)下是不開放對外訪問功能的。查看的辦法如下: ~# netstat -an | grep 3306 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 從上面可以看出,mysql的3306端口只是監(jiān)聽本地的連接,這樣就阻礙了外部IP對該數(shù)據(jù)庫的訪問,修改的辦法其實(shí)很簡單,進(jìn)入到mysql的配置文件所在目錄(/etc/mysql/my.cnf)下,找到文件中的如下內(nèi)容: # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 將bind-address注釋掉,或者改成你想要使用的客戶端主機(jī)IP。 這樣mysql的遠(yuǎn)程訪問端口就算開啟了,下面還有一個(gè)更重要的步驟,就是要給遠(yuǎn)程用戶授權(quán)。 (2)確認(rèn)客戶端用戶是否具有訪問權(quán)限。 為了讓訪問mysql的客戶端的用戶有訪問權(quán)限,我們可以通過如下方式為用戶進(jìn)行授權(quán): mysql> grant all on *.* to user_name@’%’ identified by ‘user_password’; 上面的命令授予的用戶權(quán)限可以訪問mysql中的任意數(shù)據(jù)庫(database)和表(table)。 完成上面的兩個(gè)步驟,重啟mysql即可在遠(yuǎn)程登陸mysql服務(wù)器了。Mysql的重啟命令如下: sudo /etc/init.d/mysql restart 上面只是簡單的一些介紹,不能包治百病,具體的情況還需要根據(jù)自己的運(yùn)行環(huán)境來定,希望對大家有所幫助。 最近做Linux項(xiàng)目用到MySQL數(shù)據(jù)庫,可是遠(yuǎn)程連接MySQL時(shí)總是報(bào)出erro 2003: Can’t connect to MySQL server on ’211.87.***.***’ (111),昨天查了好幾個(gè)小時(shí)才找到解決方案,如下: 1.sudo gedit /etc/mysql/my.cnf 找到bind-address =127.0.0.1 修改為bind-address =0.0.0.0 2.sudo /etc/init.d/ mysql restart 在這種情況下如果再嘗試遠(yuǎn)程連接,則會報(bào)出ERROR 1130 (HY000): Host ’211.87.***.***’is not allowed to connect to this MySQL server提示信息,不能遠(yuǎn)程連接數(shù)據(jù)庫。 在MySQL host上按如下命令操作 mysql -u root -ppassword //進(jìn)入mysql控制臺 mysql>use mysql; mysql>update user set host = ‘%’ where user = ‘root’; //這個(gè)命令執(zhí)行錯(cuò)誤時(shí)可略過 mysql>flush privileges; mysql>select host, user from user; //檢查’%’ 是否插入到數(shù)據(jù)庫中 mysql>quit 設(shè)置完成。 |
|