安装过程

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