关闭防火墙iptables
service iptables stop
chkconfig iptables off
关闭SELINUX
vi /etc/selinux/config
SELINUX=enforcing #注释掉
SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
#使配置立即生效
setenforce 0
# 安装 ncurses
Ncurses 提供字符终端处理库,包括面板和菜单。它提供了一套控制光标,建立
窗口,改变前景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应
用程序时绕过了那些恼人的底层机制。简而言之,他是一个可以使应用程序直接
控制终端屏幕显示的函数库。
1、
yum -y install ncurses-devel 注:如果报错,包找不到,是 *通配符没有识别,
给文件名加双引号 "ncurses*"
yum -y install gcc-c++ ncurses-devel make perl
* 若不安装 ncurses 编译 MySQL时会报错
*--without-ada 参数为设定不编译为 ada 绑定,因进入 chroot 环境不能使用 ada;
--enable-overwrite 参数为定义把头文件安装到 /tools/include 下而不是
/tools/include/ncurses 目录
* --with-shared 生成共享库
#安装 cmake和 bison
mysql 在 5.5 以后,不再使用 ./configure 工具,进行编译安装。而使用 cmake工具替代
了./configure 工具。 cmake的具体用法参考文档 cmake说明。
bison 是一个自由软件,用于自动生成语法分析器程序,可用于所有常见的操作
系 统
yum -y install cmake bison
下载zlib
官网地址:http://zlib.net/
下载完成之后上传至wincp
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
创建伪用户
groupadd mysql
useradd -g mysql mysql
*添加用户组 mysql,将 mysql 用户默认组设置为 mysql 用户组
MySQL5.7.17下载地址:
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.17.tar.gz
通过wincp工具上传到centos目录下
解压缩
tar -zxvf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_BOOST=boost/boost_1_59_0/
相关安装参数的说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安装位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 指定 socket (套接字)文件位置
-DEXTRA_CHARSETS=all 扩展字符支持
-DDEFAULT_CHARSET=utf8 默认字符集
-DDEFAULT_COLLATION=utf8_general_ci 默认字符校对
-DWITH_MYISAM_STORAGE_ENGINE=1 安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 安装 innodb 存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 安装 memory存储引擎
-DWITH_READLINE=1 支持 readline 库
-DENABLED_LOCAL_INFILE=1 启用加载本地数据
-DMYSQL_USER=mysql 指定 mysql 运行用户
-DMYSQL_TCP_PORT=3306 指定 mysql 端口
-DWITH_BOOST=boost/boost_1_59_0/ 这一行是指定boost库的位置,
如果下载的不是mysql-boost-5.7.17.tar.gz 这个已经包含boost库的包,
那么需要在配置项中指明下载 boost 库 当然这样比较慢,所以还是建议下载完整包
直接cmake指定参数 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory> 系统会下载 boost
make
make install
#如果报错,清除缓存,请使用以下的两条命令(如果没有报错则忽略)
make clean
rm -rf CMakeCache.txt
进入MySQL目录
cd /usr/local/mysql/
chown -R mysql .
chgrp -R mysql .
#修改 mysql 目录权限
Mysql 5.7以前
/usr/local/mysql/scripts/mysql_install_db --user=mysql
MySQL5.7以后
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#创建数据库授权表,初始化数据库
cd /usr/local/mysql
chown -R root .
chown -R mysql data
#修改 mysql 目录权限
Mysql.5.5
cp support-files/my-medium.cnf /etc/my.cnf
Mysql5.6 mysql5.7
cp support-files/my-default.cnf /etc/my.cnf
#复制 mysql 配置文件
/usr/local/mysql/scripts/mysql_install_db --user=mysql
启动 MySQL服务:
1. 用原本源代码的方式去使用和启动 mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
2. 重启以后还要生效 :
vi /etc/rc.local
/usr/local/mysql/bin/mysqld_safe --user=mysql &
:wq 保存退出
将MySQL加入/etc/rc.d/init.d/ 启动服务
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
至此,MySQL源码编译安装已经完成 ^_^ ......