Cygwin中编译安装MySQL
Linux 2005/04/17 21:41 首先从MYSQL官方网站下载MYSQL源代码,本文以 mysql-4.0.20 为例。
$ tar -zxvf mysql-4.0.20.tar.gz
$ cd mysql-4.0.20
编译过程中主要需解决两个问题:
1. pragma interface
由于CYGWIN环境中不支持 #pragma interface,所以需注释掉所有文件中的 #pragma interface,用以下命令可实现:
$ grep -rl "#pragma interface" * | xargs -r sed -i "s:#pragma interface:/*\0*/:g"
2. pthread
编译过程中还会出现`PTHREAD_MUTEX_ERRORCHECK_NP'未申明的错误,原因也是在CYGWIN中还不能用,请查看这里的说明。偶的做法是将 mysys/my_thr_init.c 文件的71-72行注释掉。
Change lines 71 & 72 to:
#ifdef __CYGWIN__
pthread_mutexattr_settype(&my_errchk_mutexattr,
PTHREAD_MUTEX_ERRORCHECK);
#else
pthread_mutexattr_setkind_np(&my_errchk_mutexattr,
PTHREAD_MUTEX_ERRORCHECK_NP);
#endif
下面才真正开始编译
$ CFLAGS="-O3" \
$ CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
$ ./configure --prefix=/usr/local/mysql \
--with-mysqld-ldflags=-all-static \
--with-charset=gbk
$ make
$ make install
$ ./scripts/mysql_install_db
$ /usr/local/mysqlbin/mysqld_safe --user=administrator &
至此编译已结束,据偶目前的使用情况来看,还未出现过什么问题 :)
$ tar -zxvf mysql-4.0.20.tar.gz
$ cd mysql-4.0.20
编译过程中主要需解决两个问题:
1. pragma interface
由于CYGWIN环境中不支持 #pragma interface,所以需注释掉所有文件中的 #pragma interface,用以下命令可实现:
$ grep -rl "#pragma interface" * | xargs -r sed -i "s:#pragma interface:/*\0*/:g"
2. pthread
编译过程中还会出现`PTHREAD_MUTEX_ERRORCHECK_NP'未申明的错误,原因也是在CYGWIN中还不能用,请查看这里的说明。偶的做法是将 mysys/my_thr_init.c 文件的71-72行注释掉。
Change lines 71 & 72 to:
#ifdef __CYGWIN__
pthread_mutexattr_settype(&my_errchk_mutexattr,
PTHREAD_MUTEX_ERRORCHECK);
#else
pthread_mutexattr_setkind_np(&my_errchk_mutexattr,
PTHREAD_MUTEX_ERRORCHECK_NP);
#endif
下面才真正开始编译
$ CFLAGS="-O3" \
$ CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
$ ./configure --prefix=/usr/local/mysql \
--with-mysqld-ldflags=-all-static \
--with-charset=gbk
$ make
$ make install
$ ./scripts/mysql_install_db
$ /usr/local/mysqlbin/mysqld_safe --user=administrator &
至此编译已结束,据偶目前的使用情况来看,还未出现过什么问题 :)

