Mysql5.5开始,源代码安装不在使用configure,而是改为cmake,所以,安装mysql是需要先安装cmake

rpm -ivh cmake-2.6.4-7.el5.i386.rpm

  • 安装前准备


groupadd mysql
useradd -g mysql mysql
mkdir /usr/local/mysql
chown mysql.mysql /usr/local/mysql/ -R
mkdir -pv /usr/local/mysql/data
yum remove mysql-server mysql mysql-devel -y
yum install gcc gcc-c++ ncurses-devel libtool openssl-devel -y
tar zxf mysql-5.5.29.tar.gz
cd mysql-5.5.29


  • 编译安装

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data/ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_INNODBBASE_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all   -DDEFAULT_CHARSET=utf8
make
make install


注:

cmake和configure一样,编译时可添加需要的参数,其语法对比如下:

configure命令

CMake命令

./configure

cmake .

./configure --prefix=/usr

cmake . -DCMAKE_INSTALL_PREFIX=/usr


在configure中如果编译

--with-plugins=csv,myisam,myisammrg,heap,innobase,archive,blackhole

在cmake中就需要单个的选项来进行控制

-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1

(csv myisam myisammrg heap默认支持,可以用“ON”来替代数字1)


如果你想除去对某种引擎的支持,

在CMake编译选项中使用-DWITHOUT_<ENGINE>_STORAGE_ENGINE,

例如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1




编译安装其实默认安装了三部分:

1、mysql client 安装了客户端

2、mysql server 安装了服务端

3、mysql devel 安装了开发文件




  • 完成配置

在源码目录下support-files目录里有很多配置文件的模版,

直接cp就能使用(当然可根据优化需求进行自己的修改配置)


cp /root/mysql-5.5.29/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf
vim /etc/my.cnf

在[mysqld]里添加一行:skip-name-resolve = 1 (跳过域名解析,加快启动速度)


#创建启动脚本,cp后可以使用/etc/init.d/mysqlsource start启动

cp /root/mysql-5.5.29/support-files/mysql.server /etc/init.d/mysqlsource
chmod 755 /etc/init.d/mysqlsource

#初始化mysql

sh scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/


#错误日志文件位置(不是命令)

/usr/local/mysql/data/localhost.localdomain.err


#创建链接到标准路径下(修改环境变量指定,效果一样)


ln -s /usr/local/mysql/bin/* /usr/bin/
ln -s /usr/local/mysql/lib/* /usr/lib/
ln -s /usr/local/mysql/libexec/*  /usr/local/libexec
ln -s /usr/local/mysql/share/man/man1/* /usr/share/man/man1
ln -s /usr/local/mysql/share/man/man8/* /usr/share/man/man8

#启动mysql

/etc/init.d/mysqlsource start


#mysql的一些安全设置

mysql_secure_installation


Enter current password for root (enter fornone): 输入root密码,没有请回车

Set root password? [Y/n] 是否给root设置密码

Remove anonymous users? [Y/n] 是否移走匿名用户

Disallow root login remotely? [Y/n] 是否拒绝root远程登陆

Remove test database and access to it? [Y/n] 是否移走test库

Reload privilege tables now? [Y/n] 是否立即生效以上设置



附:

cmake配置mysql过程中一些主要的参数说明如下:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

#安装目录

-DMYSQL_DATADIR=/usr/local/mysql/data \

#数据库存放目录

-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \

#Unix socket 文件路径

-DWITH_MYISAM_STORAGE_ENGINE=1 \

#安装 myisam 存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

#安装 innodb 存储引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

#安装 archive 存储引擎

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

#安装 blackhole 存储引擎

-DWITH_PARTITION_STORAGE_ENGINE=1 \

#安装数据库分区

-DENABLED_LOCAL_INFILE=1 \

#允许从本地导入数据

-DWITH_READLINE=1 \

#快捷键功能

-DWITH_SSL=yes \

#支持 SSL

-DDEFAULT_CHARSET=utf8 \

#使用 utf8 字符

-DDEFAULT_COLLATION=utf8_general_ci \

#校验字符

-DEXTRA_CHARSETS=all \

#安装所有扩展字符集

-DMYSQL_TCP_PORT=3306 \

#MySQL 监听端口

-DWIHT_ZLIB

#zlib支持


编译MySQL的新老参数对照表:

参数值说明

配置选项

CMak选项

TCP/IP端口

--with-tcp-port-=3306

-DMYSQL_TCP_PORT=3306

UNIX socket文件

--with-unix-socket-path=/tmp/mysqld.sock

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock

启用加载本地数据

--enable-local-infile

-DENABLED_LOCAL_INFILE=1

扩展字符支持

--with-extra-charsets=all(默认:all)

-DEXTRA_CHARSETS=all(默认:all)

默认字符集

--with-charset=utf8

-DDEFAULT_CHARSET=utf8

默认字符校对

--with-collation=utf8_general_ci

-DDEFAULT_COLLATION=utf8_general_ci

Build the server

--with-server

嵌入式服务器

--with-embedded-server

-DWITH_EMBEDDED_SERVER=1

libmysqld权限控制

--with-embedded-privilege-control

安装文档

--without-docs

Big tables支持

--with-big-tables, --without-big-tables

mysqld运行用户

--with-mysqld-user=mysql

-DMYSQL_USER=mysql

调试模式

--without-debug(默认禁用)

-DWITH_DEBUG=0(默认禁用)

GIS支持

--with-geometry

社区功能

--enable-community-features

Profiling

--disable-profiling(默认启用)

-DENABLE_PROFILING=0(默认启用)

pstack

--without-pstack

无(新版移除该功能)

汇编字符串函数

--enable-assembler

构建类型

--build=x86_64-pc-linux-gnu

没有等效参数

交叉编译主机

--host=x86_64-pc-linux-gnu

没有等效参数

客户端标志

--with-client-ldflags=-lstdc++

线程安全标志

--enable-thread-safe-client

注释存储类型

--with-comment='string'

-DWITH_COMMENT='string'

Shared/static binaries

--enable-shared --enable-static

内存使用控制

--with-low-memory