安装过程
1、 为mysqld增加登录用户和组
·shell> groupadd mysql
·shell> useradd -g mysql mysql
2、 解压下载下来的源代码包,并进入目录(mysql-VERSION)
3、 配置并编译
·shell> ./configure --prefix=/usr/local/mysql,详细配置选项见后文
·shell> make
4、 安装
·shell> makeinstall
·建立选项文件:可以从support-files目录中选取一个作为模版,如:
·shell> cpsupport-files/my-medium.cnf /etc/my.cnf
5、 切换至安装目录,若以root身份执行make install则安装文件的拥有者将是root,为了确保之后的以mysql执行操作顺利,修改安装文件的权限
·shell> chown -Rmysql .
·shell> chgrp -Rmysql .
6、 如果之前没有安装过MySQL,则必须创建mysql数据目录并初始化授权表
·shell> bin/mysql_install_db --user=mysql
·以root身份运行时,通过--user=mysql指明所属用户为mysql
7、 数据目录的拥有者必须是mysql,其他安装文件可以是root
·shell> chown -Rroot .
·shell> chown -Rmysql var (数据库的默认路径是PREFIX/var)
8、 设置开机自动启动:将support-files/mysql.server复制到启动目录/etc/rc.d/init.d
·shell> cp support-files/mysql.server/etc/rc.d/init.d/mysqld
·记得修改权限
9、 如果安装了DBI和DBD::mysql模块,可以使用bin/mysql_setpermission脚本来创建新用户
10、 启动mysql服务器,测试安装
·shell>/usr/local/mysql/bin/mysqld_safe --user=mysql &
·如果指令执行失败,在数据目录的host_name.err中记录了错误信息
典型配置选项
粗体重点掌握
参数 | 相关解释 |
--help | 查看所有支持的配置选项 |
--prefix=/usr/local/mysql | 修改安装目录 |
--localstatedir=/usr/local/mysql/var | 同时更改数据库目录 |
--disable-option-checking | 忽略无法识别的--enable/--with选项 |
--disable-FEATURE | 禁用名为FEATURE功能(--enable-FEATURE = no) |
--enable-FEATURE[=ARG] | 启用FEATURE功能,[ARG = yes] |
--enable-shared[=PKGS] | 编译后链接成共享对象 |
--enable-static[=PKGS] | 静态编译[default = yes] |
--enable-fast-install[=PKGS] | 为快速安装进行优化[default = yes] |
--disable-dependency-tracking | 禁止对Makefile规则的依赖性追踪 |
--enable-dependency-tracking | 启用对Makefile规则的依赖性追踪 |
--disable-libtool-lock | 禁止libtool锁定以加快编译速度(可能导致编译失败) |
--enable-mysql-maintainer-mode | 启用无用的 make 规则和依赖性 |
--disable-community-features | 禁用用户社区提供的额外功能 |
--enable-thread-safe-client | 编译具有线程的客户端,并启用线程安全 |
--disable-thread-safe-client | 编译无线程的客户端 |
--enable-assembler | 使用一些字符函数的汇编版本 |
--enable-profiling | 拥有查询概要文件代码(需community-features) |
--enable-local-infile | 启用LOAD DATA LOCAL INFILE 即可以从本地文件中读取数据(默认:disable) |
--disable-grant-options | 禁用--init-file, --skip-grant-tables和--bootstrap选项 |
--disable-largefile | 忽略大文件支持 |
--enable-debug-sync | 建立同步纠错工具 |
--with-pic | 尝试只使用PIC/non-PIC对象(默认use both) |
--with-gnu-ld | 假定C编译器使用GNU ld(默认no) |
--with-charset=CHARSET | 更改字符集,默认是latin1 |
--with-collation=COLLATION | 更改对应的校对规则latin1_swedish_ci |
--with-extra-charsets=CHARSET,CHARSET,... | 系统支持的其他字符集(none|complex|all) |
--without-uca | 跳过Unicode校对规则的建立 |
--with-debug[=full] | 启用不同程度的纠错支持(选择full将降低速度) |
--with-system-type | 设置操作系统 |
--with-machine-type | 设置处理器 |
--with-darwin-mwcc | 使用Metrowerks CodeWarrior开发工具 |
--with-other-libc=DIR | 连接其他标准库 |
--with-server-suffix | 设置服务器后缀名 |
--with-pthread | 强制使用POSIX线程库 |
--with-named-thread-libs=ARG | 使用特定的线程库 |
--with-named-curses-libs=ARG | 使用特定的curses图形函数库 |
--with-unix-socket-path=SOCKET | 设置unix套接字路径,此处应使用绝对路径 |
--with-tcp-port=port-number | 设置监听的端口号,默认3306 |
--with-mysqld-user=username | mysqld守护程序的运行用户 |
--with-zlib-dir=no|bundled|DIR | 为mysql提供压缩库的定制路径 |
--with-libwrap=DIR | 添加libwrap支持 |
--with-valgrind | Valgrind测试设备 |
--with-error-inject | 启用错误注入 |
--with-fast-mutexes | 添加fast mutexes |
--with-atomic-ops=rwlocks|smp|up | 实现原子操作 1、使用pthread rwlocks 2、多CPU的原子操作指令 3、单处理器结构 |
--with-mysqld-ldflags=-all-static | 以静态方式编译服务端 |
--with-client-ldflags=-all-static | 以静态方式编译客户端 |
--with-mysqld-libs | mysqld连接额外的库 |
--with-lib-ccflags | 额外的CC库选项 |
--with-low-memory | 尝试用更少的内存进行编译以避免内存限制 |
--with-comment | 添加编译环境的注释 |
--with-big-tables | 支持大表 |
--with-max-indexes=N | 设置每张表的最大索引数,默认64 |
--with-ssl=DIR | 添加SSL支持 SSL:传输层的网络连接加密 |
--with-plugins=PLUGIN[[[,PLUGIN..]]] | 添加插件 |
--without-plugin-PLUGIN | 禁用名为PLUGIN的插件 |
--with-plugin-PLUGIN | 启用名为PLUGIN的插件 |
--with-ndb-sci=DIR | 为mysql提供sci库的定制路径 |
--with-ndb-test | 添加NDB Cluster测试程序 |
--with-ndb-docs | 添加NDB Cluster文档 |
--with-ndb-port | NDB Cluster管理服务的端口 |
--with-ndb-port-base | NDB Cluster传输基本端口 |
--without-ndb-debug | 禁用ndb纠错功能 |
--with-ndb-ccflags=CFLAGS | ndb编译的额外CFLAGS |
--without-ndb-binlog | 禁用ndb二进制日志 |
--without-server | 只编译mysql客户端 |
--with-embedded-server | 构建嵌入式MySQL库 |
--without-query-cache | 不建立查询缓存 |
--without-geometry | 不建立图形相关的部分 |
--with-embedded-privilege-control | 建立检查用户权限的部分,只影响嵌入式库 |
--with-mysqlmanager | 建立mysqlmanager二进制文件 |
--without-docs | 跳过文档的建立 |
--without-man | 跳过手册的建立 |
注意事项
mysql-5.5编译配置已经不再使用传统的configure,而是使用cmake工具
新的参数名与configure参数对照表:
http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide