一、编译 MySQL5.0
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --without-bench --with-csv-storage-engine --with-blackhole-storage-engine --with-federated-storage-engine
编译完成后的配置(其它版本的操作类似)
# cd /usr/local/mysql
# cp share/mysql/my-medium.cnf /etc/my.cnf
# mkdir etc
安装数据库文件
# ./bin/mysqld_install_db
# chown -R mysql:mysql .
# ./bin/mysqld_safe --user=mysql &
二、编译 MySQL5.1
# ./configure --prefix=/usr/local/mysql5.1 --localstatedir=/usr/local/mysql5.1/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --with-plugins=partition,blackhole,csv,federated,heap,innobase,myisam
编译 innodb_plugin 需要升级 gcc 版本
# export CFLAGS="-O2 -DHAVE_DLOPEN=1"
# export CXXFLAGS="-O2 -DHAVE_DLOPEN=1"
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --with-plugins=partition,blackhole,csv,federated,heap,innobase,innodb_plugin,myisam --disable-static
使用 innodb_plugin 需要编辑配置文件 my.cnf 增加如下内容:
#禁用旧的 innodb
ignore_builtin_innodb
# 启用 innodb plugin
plugin_load=innodb=ha_innodb_plugin.so
# 设置新的数据文件格式,支持表数据和索引的压缩
innodb_file_format=barracuda
# 使用独立的表空间
innodb_file_per_table
# 严格的检查模式
innodb_strict_mode=1
三、编译 MySQL5.5
MySQL5.5 版本使用了CMake来编译,它是跨平台的编译工具
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DDEFAULT_CHARSET=utf8 -DMYSQL_UNIX_ADDR=/usr/local/mysql/etc/mysql.sock
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --without-bench --with-csv-storage-engine --with-blackhole-storage-engine --with-federated-storage-engine
编译完成后的配置(其它版本的操作类似)
# cd /usr/local/mysql
# cp share/mysql/my-medium.cnf /etc/my.cnf
# mkdir etc
安装数据库文件
# ./bin/mysqld_install_db
# chown -R mysql:mysql .
# ./bin/mysqld_safe --user=mysql &
二、编译 MySQL5.1
# ./configure --prefix=/usr/local/mysql5.1 --localstatedir=/usr/local/mysql5.1/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --with-plugins=partition,blackhole,csv,federated,heap,innobase,myisam
编译 innodb_plugin 需要升级 gcc 版本
# export CFLAGS="-O2 -DHAVE_DLOPEN=1"
# export CXXFLAGS="-O2 -DHAVE_DLOPEN=1"
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --enable-thread-safe-client --enable-local-infile --enable-assembler --enable-community-features --enable-profiling --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-user=mysql --without-embedded-server --with-big-tables --with-server-suffix=-community --with-unix-socket-path=/usr/local/mysql/etc/mysql.sock --without-debug --without-man --without-docs --with-plugins=partition,blackhole,csv,federated,heap,innobase,innodb_plugin,myisam --disable-static
使用 innodb_plugin 需要编辑配置文件 my.cnf 增加如下内容:
#禁用旧的 innodb
ignore_builtin_innodb
# 启用 innodb plugin
plugin_load=innodb=ha_innodb_plugin.so
# 设置新的数据文件格式,支持表数据和索引的压缩
innodb_file_format=barracuda
# 使用独立的表空间
innodb_file_per_table
# 严格的检查模式
innodb_strict_mode=1
三、编译 MySQL5.5
MySQL5.5 版本使用了CMake来编译,它是跨平台的编译工具
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DDEFAULT_CHARSET=utf8 -DMYSQL_UNIX_ADDR=/usr/local/mysql/etc/mysql.sock