注意: mysql 5.7.17 安装略不用于 mysql 5.6
第一:需要指定 boost
第二: 初始化也不同了
1、 环境
操作系统: centos 6.6 x64
数据库: mysql 5.7.17
mysql 包: mysql-5.7.17.zip
boost 包: boost_1_59_0.tar
2、 操作系统配置:
系统依赖包:
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
3、 安装 cmake
安装 cmake,从 http://www.cmake.org
下载源码并编译安装
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap
gmake
gmake install
4、 安装解压 boost 包
wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
cd /opt
tar –xvf boost_1_59_0.tar
cd boost_1_59_0
mkdir /usr/local/boost
mv /opt/ boost_1_59_0 /usr/local/boost
5、设置 MySQL 用户和组
groupadd mysql
useradd -r -g mysql mysql
6、 新建 MySQL 所需要的目录
新建 mysql 安装目录
mkdir -p /usr/local/mysql
新建 mysql 数据库数据文件目录
mkdir -p /data/mysqldb
7、 编译安装 MySQL源码详解
从 mysql5.5 起, mysql 源码安装开始使用 cmake 了,设置源码编译配置脚本
-DCMAKE_INSTALL_PREFIX=dir_name 设置 mysql 安装目录
-DMYSQL_UNIX_ADDR=file_name
设置监听套接字路径,这必须是一个绝
对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name设置服务器的字符集。
8、缺省情况下, MySQL 使用 latin1 的( CP1252 西欧)字符集。
cmake/character_sets.cmake 文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
9、存储引擎选项:
MyISAM, MERGE, MEMORY, 和 CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用
-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:
ARCHIVE,
BLACKHOLE,
EXAMPLE,
FEDERATED,
INNOBASE(InnoDB),
PARTITION(partitioningsupport), 和PERFSCHEMA (Performance Schema)
10、 编译安装
cdmysql−5.7.17
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
-DWITH_BOOST=/usr/local/boost
注意事项:
从 MySQL 5.7.5 开始 Boost 库是必需的
重新编译时,需要清除旧的对象文件和缓存信息。
makeclean
rm -f CMakeCache.txt
rm−rf/etc/my.cnf
make
$make install
11、 修改文件权限:
[root@localhost mysql-5.6.24]# chown -R mysql:mysql /usr/local/mysql
[root@localhost mysql-5.6.24]# chown -R mysql:mysql /data
12、 初始化数据库:
/usr/local/mysql/bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql datadir=/data/mysqldb
之前版本 mysql_install_db 是在 mysql_basedir/script 下, 5.7 放在了 mysql_install_db/bin 目录下,且已被废弃
“–initialize”会生成一个随机密码(~/.mysql_secret),而”–initialize-insecure”不会生成密码
–datadir 目标目录下不能有数据文件
复制 mysql 服务启动脚本及加入 PATH 路径/etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
复制 mysql 服务启动配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
启动 mysql 服务并加入开机自启动
service mysqld start
chkconfig –level 35 mysqld on
检查 mysql 服务是否启动
netstat -tulnp | grep 3306 #mysql -u root -p
修改 MySQL 用户 root 的密码