nodejs鏈接遠端mysql,這個折騰了一個上午才搞定。本以為,直接使用就OK了,但是發現不行,後來查閱各種資料後,終於找到了方法。 nodejs鏈接遠端資料庫主要分為幾個步驟: 1)安裝node-mysql驅動包 2)配置mysql資料庫 3)設置系統防火牆 一 安裝node-mysql安裝包, ...
nodejs鏈接遠端mysql,這個折騰了一個上午才搞定。本以為,直接使用就OK了,但是發現不行,後來查閱各種資料後,終於找到了方法。
nodejs鏈接遠端資料庫主要分為幾個步驟:
1)安裝node-mysql驅動包
2)配置mysql資料庫
3)設置系統防火牆
一 安裝node-mysql安裝包,或許這個是比較簡單的,直接採用npm安裝工具安裝就可以了,npm install mysql --save
二 配置mysql資料庫
mysql伺服器端配置遠端訪問資料庫的用戶名和密碼,這個可以通過直接修改mysql資料庫下的user表,增加自己的用戶名和密碼,或者通過grant 授權的方式給要訪問數據的用戶名和設置訪問許可權,起主要的語句為:
grant select,insert ,update on 資料庫.表 to username@'hostname' identified by 'password'
flush privileges;
同時要註意的是:
(1)flush privileges 一定要執行,修改完mysql配置之後,需要重啟,我用的是ubuntu12.04 server 所以我的重啟命令是 /etc/init.d/mysql restart;
(2) 還要註意mysql的配置文件的配置: /etc/mysql/my.cnf 其中,如果要進行remote access 的話,那麼需要把bind-address:地址改為0.0.0.0.
(3)註意myqls.user表中的,用戶名對應的host,如果僅是特定的地址或功能變數名稱,那麼一定要指定,如果是任意的地址,那麼改為%即可。
三 防火牆的設置
我的訪問資料庫伺服器的策略是通過windows下的web站點(nodejs)訪問遠端linux下的mysql ,所以首先需要ping通網路,如果網路ping的時候,沒有問題,那麼就需要通過 telnet工具訪問遠端藉口是否可以訪問。如telnet ip port,如果訪問有問題的話,那麼說明linux下的防火牆配置有問題,需要放開3306埠的流量進入。
配置防火牆,需要修改或則增加iptables的規則,在unbuntu12.04 server, 下可以通過iptables -L 查看防火牆的配置。
然後通過 ,iptables命令去修改防火牆配置。由於我的目標主要是想放開3306埠,所以我就採用瞭如下的命令設置防火牆。
iptables -A INPUT -p tcp -i eth0 --dport 3306 -j ACCEPT
防火牆設置之後,需要保存 iptables -save.
想要防火牆下次啟動時仍然有效,需要把規則保存到獨立的文件中,下次啟動的時候隨著系統的啟動,防火牆自動進行配置。假設防火牆配置規則保存到iptable.rules文件中, 那麼在保存的時候,需要使用
iptable-save >> iptables.rules
然後設置開機啟動自動配置,修改/etc/network/interfaces文件,在對應的網卡下增加:
pre-up iptables-restore < /etc/iptables-rules. 保存即可。
從而完成了防火牆的配置。
比較簡單,但是折騰了很久,記錄一下。