「Database」分類文章彙整

h1

MySQL install

一月 15, 2008

轉到mysql ports 安裝資料夾
cd /usr/ports/database/mysql50/

編輯Makefile
vi Makefile

在CONFIGURE_ARGS加入
–with-charset=big5
令到mysql 支援繁體中文

安裝
make SKIP_DNS_CHECK=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes install
SKIP_DNS_CHECK=yes 表示在加入本機名字時,不用做反解
BUILD_OPTIMIZED=yes 表示在編譯時優化處理
BUILD_STATIC=yes 把mysqld編成靜態執行版本

整理ports
make clean

製做mysql 放置資料庫的資料夾,並作權限修改
mkdir /var/db/mysql
chown -R mysql:mysql mysql
chmod -R 755 mysql

架建mysql基本資料庫
/usr/local/bin/mysql_install_db

為統一存放資料的位置,將/var/db/mysql移動到/system之下
mv /var/db/mysql/ /system/local/mysql/
ln -s /system/local/mysql/ /var/db/mysql

因為要用/usr/local/etc/rc.d/mysql-server令系統自動啟動mysqld,所以要修改/etc/rc.conf
vi /etc/rc.conf
加入
mysql_enable="YES"

重新開機mysql就會自動開始了。
如沒有啟動可以執行腳本
/usr/local/etc/rc.d/mysql-server start
設定mysql root的密碼
方法一:
mysqladmin -u root password newpassword
方法二:
先登入mysql
mysql -u root -p
用sql改密碼
SET PASSWORD FOR root = PASSWORD(‘newpassword’);

h1

PureFTPD + MySQL 認證 install

一月 15, 2008

如還未安裝MySQL,請到MySQL install

轉到安裝ports目錄
cd /usr/ports/ftp/pure-ftpd/

設定安裝套件
make config
本機安裝套件
MySQL, PAM, PerUserLimits, Throttling, Banner, UTF8, SendFile
套件應該選自己有需要的,這裏的建議未必是最適合

安裝服務
make install

新增ftp用戶和群組給ftpd使用
pw groupadd ftpuser -g 2000
pw useradd ftp -u 2000 -g ftpuser -s /sbin/nologin

復製範例設定檔
cp /usr/local/etc/pureftpd-mysql.con /etc/
cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf

(完整的pure-ftpd設定檔介紹,請按文章[Pure-FTPd.conf])

設定pure-ftpd至支援mysql認證
#MySQLConfigFile /etc/pureftpd-mysql.conf
刪去#號

新增mysql資料庫、用戶和資料表給pure-ftpd使用
CREATE DATABASE ftpd;
GRANT ALL ON ftpd.* TO ftpd@localhost IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;

DROP TABLE IF EXISTS users;
CREATE TABLE users (
User varchar(16) NOT NULL default “,
Password varchar(64) NOT NULL default “,
Uid varchar(11) NOT NULL default ‘-1′,
Gid varchar(11) NOT NULL default ‘-1′,
Dir varchar(128) NOT NULL default “,
QuotaFiles int(11) NOT NULL default 0,
QuotaSize smallint(5) NOT NULL default ’0′,
ULBandwidth smallint(5) NOT NULL default ’0′,
DLBandwidth smallint(5) NOT NULL default ’0′,
PRIMARY KEY (User)
) TYPE=MyISAM;

設定pureftpd-mysql.conf
vi /etc/pureftpd-mysql.conf

更改
MYSQLUser 用戶
MYSQLPassword 密碼
MYSQLDatabase 資料庫
MYSQLCrypt md5 (加密方法)

刪去#號
# MYSQLDefaultUID 1000
# MYSQLDefaultGID 1000
# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"
# MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"

啟動pure-ftpd在rc.conf中的設定,令到執行腳本生效
vi /etc/rc.conf
加入
pureftpd_enable="YES"
pureftpd_upload_enable="YES"
pureftpd_uploadscript="/full/path/to/launch_script"

重開機後pure-ftpd應該會自動啟動的,如果沒有可以執行以下指令
/usr/local/etc/rc.d/pure-ftpd start

h1

MySQL: set code to the real UTF8

一月 15, 2008

由於mysql 預設定編碼是latin1,所以現在將編碼轉為真正的utf8。
登入後輸入
mysql> show variables like ‘%character%’;
應該會發現全部都是latin1,如果不是就不用改了

然後修改/etc/rc.cnf
加入:
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8

重新啟動mysql
/usr/local/etc/rc.d/mysql-server restart

如果想修改已存儲的的資料庫,方法如下:
備份資料庫
mysqldump -u root -p –default-character-set=latin1 –add-drop-table 資料庫名稱 > 備份檔名稱

修改資料庫編碼
mysql> ALTER DATABASE DEFAULT CHARACTER SET utf8;

將備份檔再復製一份
cp 備份檔 第二個備份檔

修改原本的備份檔
vi 備份檔

修改
前:SET NAMES latin1
後:SET NAMES utf8

前:ENGINE=MyISAM DEFAULT CHARSET=latin1;
後:ENGINE=MyISAM DEFAULT CHARSET=utf8;
這個修改是整份備份檔

將備份檔匯入mysql
mysql -u root -p 資料庫名稱 改過的備份檔案

如果沒成功就先匯入第二個備份檔
mysql -u root -p 資料庫名稱 第二份備份檔案

Follow

Get every new post delivered to your Inbox.