centos6下mysql5.7编译安装

Mysql5.7版本更新后有很多变化,比如json等,且安装必须要BOOST库,不过mysql的官网源码有带boost库的源码和不带boost库的源码两种

下载源代码

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz

安装依赖

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel  bison perl perl-devel 

添加mysql用户

groupadd mysql

useradd -r -g mysql -s /bin/nologin mysql

BOOTST

从MySQL 5.7.5开始Boost库是必需的

下载 mysql-boost-5.7.12.tar.gz 在 cmake 指定参数 -DWITH_BOOST=boost,

或直接cmake指定参数 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost 系统会下载 boost ,

系统下载boost有时会出错,建议使用带boost库的源码安装

编译参数

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DSYSCONFDIR=/etc \

-DWITH_BOOST=boost \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLED_LOCAL_INFILE=1 \

指定安装文件的安装路径时常用的选项:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/data/mysql

-DSYSCONFDIR=/etc

默认编译的存储引擎包括:InnoDB,MyISAM,MERGE,MEMORY, CSV。若要安装其它存储引擎,可以使用类似如下编译选项:

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1

若要明确指定不编译某存储引擎,可以使用类似如下的选项:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1

如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:

-DWITH_READLINE=1

-DWITH_SSL=system

-DWITH_ZLIB=system

-DWITH_LIBWRAP=0

其它常用的选项:

-DMYSQL_TCP_PORT=3306

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

-DENABLED_LOCAL_INFILE=1

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DWITH_DEBUG=0

-DENABLE_PROFILING=1

更多编译参数

https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options

重新编译

如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean

编译安装

make && make install

配置开机启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on

修改/etc/my.cnf配置文件

初始化数据库

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

注: 之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃

“–initialize”会生成一个随机密码(~/.mysql_secret),而”–initialize-insecure”不会生成密码

–datadir目标目录下不能有数据文件

修改环境变量

vi /etc/profile

# 在profile文件末尾增加两行

PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

export PATH

# 使PATH搜索路径立即生效:

source /etc/profile

你可能感兴趣的:(centos6下mysql5.7编译安装)