系统环境操作系统:CentOSLinuxrelease7.4.1708(Core)MySQL版本:MySQL-5.7.21安装前的准备编译安装MySQL需要一些必要的组件,可以直接yum安装yum-yinstallcmakencurses-develgcc-c++创建Mysql用户useraddmysql分别为mysql创建程序安装目录和数据存放目录,这里将mysql安装在/opt下,数据存放在/data/mysql下mkdir/opt/mysql-5.7.21mkdir/data/mysql/{log,data}-p到官网下载MySQL安装包并解压。为了使用mysql用户编译安装,下载解压必须使用mysql用户。否则解压后需要手动修改源码的owner权限。使mysql用户有权限编译安装wgethttps://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21.tar.gztarxfmysql-5.7.21.tar.gz2。开始编译安装MySQL常用编译参数参数说明-DCMAKE_INSTALL_PREFIX=dir_name基本文件夹,对应mysqld的--basedir参数-DINSTALL_BINDIR=dir_namebin目录位置-DINSTALL_DOCDIR=dir_name文档目录位置-DINSTALL_DOCREADMEDIR=dir_nameReadme文件位置-DINSTALL_INCLUDEDIR=dir_nameInclude目录位置-DINSTALL_LAYOUT=name布局选项,包括Standalone,RPM,SRV4,DEB-DMYSQL_DATADIR=dir_name数据存放目录-DSYSCONFDIR=dir_name默认配置my.cnf目录进入mysql目录,开始编译cmake-DCMAKE_INSTALL_PREFIX=/opt/mysql-5.7.21-DMYSQL_DATADIR=/data/mysql-DSYSCONFDIR=/opt/mysql-5.7.21/conf-DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DDEFAULT_CHARSET=utf8-DWITH_SSL=yes-DDOWNLOAD_BOOST=1-DWITH_BOOST=/opt/mysql-5.7.21编译成功,执行makeinstall3。安装后的工作是在/opt/mysql-5.7.21目录下创建一个conf目录,将源码包中的mysql默认配置文件复制到里面mkdir/opt/mysql-5.7.21/conf/cppackaging/rpm-common/my.cnf/opt/mysql-5.7.21/conf/初始化mysql./bin/mysqld--defaults-file=/opt/mysql-5.7.21/conf/my.cnf--datadir=/data/mysql--initialize-insecure--collat??ion-server=utf8_general_ci--explicit_defaults_for_timestamp=true2018-02-12T06:48:25.794971Z0[警告]InnoDB:已创建新日志文件,LSN=457902018-02-12T06:48:25.858793Z0[Warning]InnoDB:Creatingforeignkeyconstraintsystemtables.2018-02-12T06:48:25.915154Z0[Warning]NoexistingUUIDhasbeenfound,所以我们假设这是第一次启动这个服务器。生成新的UUID:b9bda646-0fc0-11e8-b0a0-5254005cdf47.2018-02-12T06:48:25.916131Z0[警告]Gtid表尚未准备好使用。无法打开表'mysql.gtid_executed'。2018-02-12T06:48:26.297824Z0[警告]CA证书ca.pem是自签名的。2018-02-12T06:48:26.420848Z1[警告]root@localhost是用空密码创建的!请考虑关闭--initialize-insecure选项。修改mysql配置并创建mysql日志目录#有关如何更改设置的建议,请参阅#http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld]##删除前导#并设置为MySQL中最重要数据#缓存的RAM量。从专用服务器总RAM的70%开始,否则为10%。#innodb_buffer_pool_size=128M##Removeleading#以打开一个非常重要的数据完整性选项:logging#备份之间二进制日志的更改。#log_bin##Removeleading#设置主要对报告服务器有用的选项。#服务器默认值对于事务和快速SELECT来说更快。#根据需要调整大小,尝试找到最佳值。#join_buffer_size=128M#sort_buffer_size=2M#read_rnd_buffer_size=2Mdatadir=/data/mysqlsocket=/tmp/mysql.sock#建议禁用符号链接以防止各种安全风险symbolic-links=0log-error=/data/mysql/log/mysqld.logpid-file=/data/mysql/mysqld.pidmkdir/data/mysql/log添加mysql系统启动脚cp-psupport-files/mysql.server/etc/init.d/mysqld/etc/init.d/mysqldstart报错:启动MySQL。错误!服务器在没有更新PID文件(/data/mysql/mysqld.pid)的情况下退出。查看错误日志tail/data/mysql/log/mysql--------2018-02-12T06:58:48.615325Z0[警告]具有隐式DEFAULT值的TIMESTAMP已弃用。请使用--explicit_defaults_for_timestamp服务器选项(有关详细信息,请参阅文档)。2018-02-12T06:58:48.615416Z0[注意]--secure-file-priv设置为NULL。与导入和导出数据相关的操作被禁用2018-02-12T06:58:48.615453Z0[注意]/opt/mysql-5.7.21/bin/mysqld(mysqld5.7.21)startingasprocess24900...2018-02-12T06:58:48.617334Z0[错误]COLLATION'latin1_swedish_ci'isnotvalidforCHARACTERSET'utf8'2018-02-12T06:58:48.617368Z0[ERROR]Aborting2018-02-12T06:58:48.617389Z0[Note]Binlogend2018-02-12T06:58:48.617574Z0[注意]/opt/mysql-5.7.21/bin/mysqld:Shutdowncomplete2018-02-12T06:58:48.625393Zmysqld_safemysqldfrompidfile/data/mysql/mysqld.pidended修改mysql启动脚本,在startup参数添加--collat??ion-server=utf8_general_ci将mysql添加到系统环境变量中vim/etc/profile.d/mysql.sh----------exportPATH=$PATH:/opt/mysql-5.7.21/bin------------source/etc/profile.d/mysql.sh为mysqlroot用户设置密码mysqladmin-urootpassword'123456'
