略
2、通过编译、二进制安装MySQL5.7
#配置说明
Linux版本:Centos7
MySQL版本:mysql-5.7.26
该文档适用于MySQL版本>=5.7.6
数据库源码存放目录:/apps/mysql_source #存储空间要大一些
数据库安装目录:/usr/local/web/mysql
数据库的数据目录:/home/mysql/data
#1)安装相关依赖包
[root@localhost ~]#yum install -y cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl automake autoconf make libtool bison-devel libaio-devel
#2)创建用户和数据库目录
[root@localhost ~]#groupadd mysql
[root@localhost ~]#useradd -s /bin/bash -m -g mysql mysql
[root@localhost ~]#mkdir -p /apps/mysql_source
[root@localhost ~]#mkdir -p /usr/local/web/mysql
[root@localhost ~]#mkdir -p /home/mysql/data
[root@localhost ~]# chown -R mysql:mysql /home/mysql/data
[root@localhost ~]# chown -R mysql:mysql /usr/local/web/mysql
#3)下载并解压缩源码包
#下载源码并清除 centos 原有my.cnf配置文件:
[root@localhost ~]#mv /etc/my.cnf /etc/mysql.cof.back
[root@localhost ~]#cd /apps/mysql_source
[root@localhost ~]#wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26.tar.gz
[root@localhost ~]#tar -zxf mysql-5.7.26.tar.gz -C /apps/mysql_source/
#4)安装boost
#mysql5.7.6以后需要安装 boost库文件
[root@localhost ~]#cd /usr/local
[root@localhost ~]#wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
#5)准备编译环境并编译安装
#编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
[root@localhost ~]#cd /apps/mysql_source/mysql-5.7.26/
[root@localhost mysql-5.7.26]#cmake
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_INSTALL_PREFIX=/usr/local/web/mysql
-DMYSQL_UNIX_ADDR=/usr/local/web/mysql/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DMYSQL_DATADIR=/home/mysql/data
-DSYSCONFDIR=/etc/my.cnf
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DENABLE_DEBUG_SYNC=0
-DENABLED_LOCAL_INFILE=1
-DENABLED_PROFILING=1
-DMYSQL_TCP_PORT=3306
-DWITH_DEBUG=0
-DWITH_SSL=yes
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost_1_59_0.tar.gz
#如果编译出现错误,请先删除CMakeCache.txt后,再重新编译
#cmake参数解释如下:
DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径
DMYSQL_DATADIR=/data/mysql:数据文件存放位置
DSYSCONFDIR=/etc:my.cnf路径
DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎
DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:连接数据库socket路径
DMYSQL_TCP_PORT=3306:端口
DENABLED_LOCAL_INFILE=1:允许从本地导入数据
DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区
DEXTRA_CHARSETS=all:安装所有的字符集
DDEFAULT_CHARSET=utf8:默认字符
DWITH_EMBEDDED_SERVER=1:嵌入式服务器
#该命令中可以通过添加-j参数指定多线程工作,如make -j2 && make install -j2 则使用2个CPU核进行make
[root@localhost ~]#make -j2 && make install -j2
#6)设置开机自启动
[root@localhost ~]#cp /usr/local/web/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]#chmod +x /etc/init.d/mysqld
[root@localhost ~]#chkconfig --add mysqld
#7)准备my.cnf文件
[root@localhost ~]#vim /etc/my.cnf
[mysqld]
basedir = /usr/local/web/mysql
datadir = /home/mysql/data
innodb_buffer_pool_size = 128M
explicit_defaults_for_timestamp = true
socket = /usr/local/web/mysql/mysql.sock
[mysqld_safe]
log-error = /home/mysql/data/error.log
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#8)配置环境变量,使/usr/local/web/mysql/bin,lib目录下所有命令可以在任意目录执行。
[root@localhost bin]# echo 'PATH=$PATH:/usr/local/web/mysql/bin:/usr/local/web/mysql/lib/' >> /etc/profile
[root@localhost bin]# . /etc/profile
#9)初始化数据库
#如果出现如下信息:unknown variable 'defaults-file=/data/mysql/my.cnf',请保证--defaults-file配置选项在最前面
[root@localhost data]# mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/web/mysql --datadir=/home/mysql/data --user=mysql
2021-11-03T05:42:04.327406Z 0 [Warning] InnoDB: New log files created, LSN