tar.gz 结尾的, 解压之后的目录中:
Build 目录:各种平台的编译脚本,监测 cpu型号的编译脚本
Check-cpu脚本
Client :客户端程序的源代码 , mysql.cc,mysqladmin.cc
Docs:
Storage :存储引擎目录,实现了 hander
Mysys: :mysql 为了实现跨平台对系统库封装
Sql: 数据库主程序目录,存储引擎接口。
Vio: 封装了各种协议的网络操作
Limysqld: mysql链接库的源代码
源码安装中 configure的作用, 有检查c的编译器,生产 makefile文件
Configure的常用选项:
--prefix 设定安装路径,默认为 /user/local
--datadir 设定mysql数据文件存放路径
--with-charset 设定系统的默认字符集
--with-collation 设定系统默认的校验规则
--with-extra-charsets 除了默认字符集之外需要编译安装的字符集
--with-unix-socket-path 设定socket文件地址
--with-tcp-port 指定监听端口,默认为 3306
--with-mysqld-user 指定运行 mysqld的os 用户,默认为 mysql
--without-query-cache 警用innodb存储引擎
--with-partition 5.1 版本中开启 partition支持特性
--enable-thread-safe-client 以线程方式编译客户端
--with-pthread 强制使用 pthread线程库编译
--without-debug 使用非debug模式
--with-named-thread-libs 指定使用某个特定的线程库编译
--with-mysqld-ldflags mysqld 的额外link参数
--with-client-ldflags client 的额外link参数
开始安装
[root@oracle mysql-5.1.68]# groupadd mysql
[root@oracle mysql-5.1.68]# useradd -g mysql mysql
[root@oracle u02]# tar -zxvf mysql-5.1.68.tar.gz
[root@oracle mysql-5.1.68]# mkdir mysql5168
[root@oracle mysql-5.1.68]# ./configure --prefix=/u02/mysql5168/ --without-debug --enable-thread-safe-client --enable-assembler --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charsets=latin1 --with-extra-charsets=utf8,gbk --with-mysqld-user=mysql --without-embedded-server --with-server-suffix=bruce --with-plugins=innobase,partition
[root@oracle mysql5168]# make
[root@oracle mysql5168]# make install
[root@oracle mysql5168]# mkdir data
[root@oracle mysql5168]# chown -R mysql:mysql data/
[root@oracle mysql-5.1.68]# pwd
/u02/mysql-5.1.68
[root@oracle mysql-5.1.68]# cp support-files/my-small.cnf /u02/my.cnf
在/u02/my.conf中加入如下内容,在 mysqld标签下:
basedir=/u02/mysql5168
datadir=/u02/mysql5168/data
[root@oracle mysql5168]# pwd
/u02/mysql5168
[root@oracle mysql5168]# ./bin/mysql_install_db --defaults-file=/u02/my.cnf --user=mysql
mysql> select version();
+-------------+
| version() |
+-------------+
| 5.1.68bruce | 出现的后缀名和--with-server-suffix=bruce 一样
+-------------+
1 row in set (0.00 sec)
启动 mysql数据库服务
[root@oracle bin]# pwd
/u02/mysql5168/bin
[root@oracle bin]# ./mysqld_safe --user=mysql &