- local machine:win8
- 虛擬機:VMWare Player
- 虛擬機OS:Xubuntu 15.04 i386
我的步驟如下:
首先安裝MySQL
$ sudo apt-get update
$ sudo apt-get install mysql-client mysql-server
$ sudo apt-get install php5-mysql
網路上雖然很多人說安裝完後root沒有密碼,可是我在安裝時就有向我要求設定密碼了,也沒仔細看所以不確定是否能不設。
總之安裝完後可以登入了
$ mysql -u root -p #這是有設密碼才需要 -p;沒設密碼就不用
登入後設定MySQL使用者(此以test當使用者名)
mysql> create user 'test'@'localhost' identified by 'MY_PASSWORD';
mysql> create user 'test'@'%' identified by 'MY_PASSWORD';
mysql> grant all on *.* to 'test'@'localhost';
mysql> grant all on *.* to 'test'@'%';
接下來就要設定MySQL可外連了。
首先移除MySQL設定中的removed bind_address & skip-externak-locking
$ sudo mousepad /etc/mysql/mysql.conf.d/mysqld.cnf
在這裡要說一下,網路上有說是在「/etc/mysql/my.cnf」,可是我看了我的MySQL所有設定檔卻是在「/etc/mysql/mysql.conf.d/mysqld.cnf」,所以下面這行shell code請以自己的為準。
另外,因為我是使用Xubuntu,所以純文字的編輯器是mousepad(鼠墊?),Ubuntu的話就是gedit,Kubuntu這個是用KDE我就不清楚了,我個人不喜歡KDE。
再來是設定netstat,netstat設定完後重開MySQL(
$ netstat -an|grep 3306
$ sudo /etc/init.d/mysql stop
$ sudo /etc/init.d/mysql start
開放MySQL的port:
$ sudo /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
這裡要說一下,/sbin/iptables 是我一直連不上後,在網路上找到的方法(How to access MySQL from a remote computer (not localhost)?),但不多人使用,如果前面方法都成功後,還連不上再用吧(我後來才知道我連不上JDBC是因為Hibernate設定問題,跟MySQL無關,好奇的是什麼情況的就自己看Cannot Access MySQL installed in Virtual Machine)
總之,這樣就設定完了,也能用java連上了……
可喜可賀!可喜可賀啊!
直到隔天!
我都忘了這是虛擬IP啊!
一日不見便覺得面目可憎(欸?
然後呢,我所使用的虛擬機呢,可是VMWare Player啊!Player,是Player啊!不是Player Pro也不是Workstation!
很理所當然的,沒辦法設定啊!
所以只好換用Virtual Box囉!
要如何設定網路教學很多,所以就不寫了(
補充一下,因為要連線到虛擬機的MySQL伺服器,所以要知道虛擬機的IP,linux取得IP的shell code是:
$ ifconfig
我是覺得windows的 ipconfig 名稱比較直白比較好懂,我不懂為什麼 linux 就變成 if 了
當初建設伺服器的參考資料:
- 建立一個MySQL伺服器的備援(M/S Replication)--Coding Life
- 設定 mysql 允許外部連線--長島冰茶的工程師筆記
- problem with mysql, java and jdbc--Ubuntu fourm
- [MySQL] 開放外部連線--Woo La Woo La Woo La La ~
ipconfig
回覆刪除