FreeBSD 下安装MySQLdb

1、安装mysql

tar zxf mysql-5.0.41.tar.tar
cd  mysql-5.0.41
./configure --prefix=/home/happyiww/mysql-5.1.18-beta --with-tcp-port=7788 --with-unix-socket-path=/tmp/happyiww.mysql.sock  --with_innodb  --enable-thread-safe-client -->这个专门为了使用ssl而设置的,因为MySQLdb需要链接这个库。我曾经在一个debian平台上安装mysql,报错termcap找不到,那么请安装ncurse,然后加上--with-named-curses-libs=/usr/lib/libncursesw.so.5 或者 --with-named-curses-libs=/usr/lib/libncurses.a就可以了,而且如果系统中缺少readline/libedit等,请在配置命令的最后加上--without-readline 和--without-libedit,如果在选项--with-named-curses-libs前加,好像无效。

make
make install
   
说明,在安装mysql的过程中,test阶段可能会报几个error,但是不影响make install的运行。事实上,在安装完以后,mysql数据库还没有创建,还必须手工创建数据,下面我们看看怎么初始化数据库(如:用户表等)
   
创建mysql实例
参看/home/happyiww/mmysql/share/mysql中的配置文件(cp /home/happyiww/mmysql/share/mysql/my-small.cnf my.cnf),最主要修改的section是:

[mysqld]
port            = 7788
socket          = /tmp/happyiww.mysql.sock
datadir         = /home/happyiww/mysqldata
   
运行/home/happyiww/mysql/bin/mysql_install_db --user=happyiww --defaults-file=/home/happyiww/my.cnf
   
启动mysql: /home/happyiww/mmysql/bin/mysql_safe &
   
修改密码;/home/happyiww/mmysql/bin/mysqladmin -u root -p password newpassword 这是mysql要求输入就密码, 新建的数据库密码为空,只要回车就可以了
              
重启mysql
现在mysql已经安装完成

2、安装MySQLdb
tar zxf MySQL-python-1.2.2.tar.gz
cd MySQL-python-1.2.2
python setup.py install --prefix=/home/happyiww/python24
   
一般来说在这个地方会出现/usr/local/mysql 找不到libmysqlclient_r.so

这个时候把出错的编译命令拷贝来:
gcc XXXXX -L/usr/local/bin/mysql -lmysqlclient_r XXXX
改成:
gcc XXXXX -L/home/happyiww/lib/mysql -lmysqlclient_r XXXX

直接编译,应该没有问题了-->为什么可以这样?这是因为make的机制是会对比文件的时间决定是否需要重新编译的
   
这时候再运行python setup.py install --prefix=/home/happyiww/python24
   
现在已经装上了。