在 FreeBSD 下安裝 MySQL 4.1 …

在 FreeBSD 下面用 ports 安裝 MySQL 4.1

如果你只要用 UTF-8 的話就算了,但是如果還是有使用 BIG5 的話..
安裝 make 的時候,記得要加上 WITH_CHARSET=big5

以下當作筆記,紀錄 MySQL database server / FreeBSD 的安裝流程:

安裝資料庫:

cd  /usr/ports/databases/mysql41-server/
make  WITH_CHARSET=big5  install

接下來加入這一行在 /etc/rc.conf 裡面:

mysql_enable=”YES”

如果想指定不同的資料庫存放位置的話,可以在 /etc/rc.conf 內加上:

mysql_dbdir=”/home/mysql”

記得這個目錄要先建立,owner 及 group 都要是 mysql,然後就可以啟動 MySQL 了:

/usr/local/etc/rc.d/mysql-server.sh start

再來要設定 root 密碼(假設密碼是 dada):

/usr/local/bin/mysqladmin -u root password ‘dada’

然後我們先進入 MySQL 的交談式介面,在命令列下執行:

/usr/local/bin/mysql -u root -p


問密碼的時候就輸入您在前一步驟設定的密碼

接下來首要任務當然是讓 phpMyAdmin 能連線囉,假設我們要為 phpMyAdmin 建立的一個連線帳號名稱為 giga 密碼為 virtual,在大於符號後面輸入:

GRANT ALL PRIVILEGES ON *.* TO ‘giga‘@’localhost

IDENTIFIED BY ‘virtual‘ WITH GRANT OPTION;


這邊是假設你的 Web Server 跟 MySQL 在同一台機器上,如果不是的話,請把 localhost 改成 Web Server 的 hostname 或 IP

完成後輸入 exit 可離開交談介面

然後到你的 Web Server 上面,安裝 phpMyAdmin

cd /usr/ports/databases/phpmyadmin
make install

設定 phpMyAdmin:

vi /usr/local/www/phpMyAdmin/config.inc.php

設定以下數值:

$cfg[‘Servers’][$i][‘auth_type’] = ‘http

如果你的 Web Server 跟 MySQL 不在同一台機器上,請把下面這一行的 localhost 改掉:

$cfg[‘Servers’][$i][‘host’] = ‘localhost

接下來改 httpd.conf (以 apache2 為例):

vi /usr/local/etc/apache2/httpd.conf

加入以下幾行

Alias      /mysql/       "/usr/local/www/phpMyAdmin"

<Directory    "/usr/local/www/phpMyAdmin">
Options  MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 192.168.0.1
Allow from 192.168.0.2
</Directory>

以上是設定只允許兩個 IP 連線,請依據你的需求更改,最後重新啟動 Web Server:

/usr/local/etc/rc.d/apache2.sh   stop
/usr/ocal/etc/rc.d/apache2.sh   start

然後就可以用瀏覽器連到:

http://your.web.server/mysql/

輸入之前建立給 phpMyAdmin 用的帳號密碼就應該可以進去了..

成功進去後就可以開始做你想做的事了!

上面步驟以上所建立給 phpMyAdmin 用的帳號,會擁有全部的權限,建議可以做一些調整,拿掉不需要的部分,這樣的調整可以在 phpMyAdmin 的權限頁面中直接完成

另外,如果你有兩台 MySQL Server,想要設定 MySQL 的 Replication 功能,
請參考之前寫的另外一篇文章「Replication of MySQL database

另外,如果要用 PHP 連接 MySQL 4.1,使用 BIG5 編碼的資料庫,記得在連線後執行:

$charset = mysql_query( "SET  NAMES  'big5'", $dblink);

或者直接在 my.cnf 中加入底下這行(如果你確定所有的 DB 都是使用 BIG5 編碼的話):

init_connect='SET  NAMES  big5'

歡迎留下您的意見