centos7编译安装mysql5.7
安装mysql之前先安装所需的依赖包如下:
yum -y install gcc-c++ ncurses-devel make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
安装cmake:(本例子中使用cmake3.12.0, 6.5的虚拟机不能使用此版本,需要使用低一点的版本)
解压cmake包:
tar -xf cmake-3.12.0.tar.gz
cd cmake-3.12.0 //进入目录
./bootstrap //配置
gmake //编译
gmake install //安装
安装boost:
Mysql5.7.5以上的版本编译安装都需要boost,而且要求必须指定版本,否则无法安装成功,本次安装的mysql5.7.23对应的boost版本为boost_1_59_0.tar.gz,将包上传到root/目录下
tar -xf boost_1_59_0.tar.gz //解压
mv boost_1_59_0 /usr/local/boost //移动指定目录下重命名
安装mysql:(首先确保系统没有安装mysql)
mkdir -p /usr/local/mysql //创建安装目录
mkdir -p /usr/local/mysql/data //创建数据存放目录
groupadd mysql //创建mysql用户组
useradd -g mysql mysql //创建mysql用户并加入组
将包上传到任意目录下(可以传到root目录下)
tar -xf mysql-5.7.23.tar.gz //解压
mv mysql-5.7.23 mysql //重命令为mysql文件夹
cd mysql //进入目录
执行以下安装文件: 注意\后面不要有空格
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-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_BOOST=/usr/local/boost
make //编译
make install //安装
注意:如果cmake编译过程中报错需要重新编译时需要先删除mysql解压目录下(不是安装目录)的文件, 如图:

然后执行make clean后再重新使用cmake编译。
安装完成后给目录赋予权限:
cd /usr/local/ //进入安装目录
chown -R mysql:mysql mysql //赋予用户属主和属组
初始化数据库:
cd /usr/local/mysql/bin/ //进入安装目录
./mysqld –initialize-insecure –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
编译配置文件 : vi /etc/my.cnf

添加环境变量: vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile //配置立即生效
将MySQL启动脚本添加到启动服务中:
centos7的添加方式和centos6不用,不是在/etc/init.d/目录下 而是在/lib/systemd/system/目录下
cd /lib/systemd/system/ //进入目录下
vi mysql.service //编辑的同时创建了文件,如果编辑的是mysqld.service 那么下面启动时就应该是systemctl start mysqld, 添加内容如下:

注意其中的mysql.server在安装目录的support-files目录下,是MySQL的启动脚本
然后可以通过systemctl restart|start|stop|status mysql(不是mysqld)来启动了
也可以进入support-files目录下通过./mysql.server start来启动
然后直接输入mysql即可登录,如果登录显示Can’t connect to local mysql server through socket ‘/tmp/mysql.sock’
可执行如下命令:做一个软连接到my.cnf中配置的socket地址
ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
重启MySQL再次登录即可。
说明:
windows和mac系统mysql默认不区分大小写,linux系统则区分大小写(查表查库等),在linux系统的mysql配置文件my.cnf的[mysqld]模块中添加如下内容,即可取消区分大小写
lower_case_names=1 其中1表示不区分,0表示区分 然后重启mysql即可

点击下方百度网盘按钮,可下载相关安装包!!!


