2015年5月11日 星期一

使用虛擬機安裝MySQL與設定

使用環境:
  • local machine:win8
  • 虛擬機:VMWare Player
  • 虛擬機OS:Xubuntu 15.04 i386
免費的MySQL伺服器要外連很麻煩(權限問題),尤其我有需要用到Java來連,而不是php(貌似php連MySQL比較沒有權限問題),所以只好自己架設虛擬伺服器了。
我的步驟如下:
首先安裝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到底是幹什麼用的就別問我請去查Google
$ 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囉!

要如何設定網路教學很多,所以就不寫了(其實是因為我自己沒有把設定的資料留在書籤,然後我又懶得再Google一次

補充一下,因為要連線到虛擬機的MySQL伺服器,所以要知道虛擬機的IP,linux取得IP的shell code是:
$ ifconfig

我是覺得windows的 ipconfig 名稱比較直白比較好懂,我不懂為什麼 linux 就變成 if

當初建設伺服器的參考資料:

1 則留言: