CentOS7 64位下MySQL5.7源码编译安装与配置

MySQL最新版本已经更新到8.0了,作为一名刚入门linux新手,在安装mysql-8.0.11时遇到各种坑,度娘上搜索到教程暂时不多,没有找到错误的解决办法,于是决定卸载重装。

这篇文章主要为大家详细介绍linux下mysql 5.7.22 安装配置方法,MySQL也可以通过Yum或其它安装包快速安装,推荐使用源代码编译安装。从源代码编译安装MySQL有一些好处,如可以指定编译生成参数、优化编译、指定安装位置等。

一. 获取源码

MySQL官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:

选择对应的mysql版本,并选中源码包方式(如下图)

我们是选择(Generic Linux (Architecture Independent), Compressed TAR Archive)这种安装包,点击右边的下载按钮,跳转到下载页面。

不用注册登录,直接在No thanks, just start my download.点击鼠标右键,选中复制链接地址,这样获取到了源码包地址。

可以使用wget命令下载文件:

# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz

下载完成后,MySQL的源文件被打包为.tar.gz格式。在本例中,我下载的源代码文件为'mysql-5.7.22.tar.gz'。

接着使用tar命令解压文件:

# tar -zxvf mysql-5.7.22.tar.gz

二. 配置、编译、安装

解压完成后,进入源码目录:

# cd mysql-5.7.22

在MySQL 5.7以上版本中,指定CMake作为构建所有平台的框架。在编译安装MySQL前,应确保系统中已安装2.6.3以上版本的CMake程序。在CentOS中,使用yum命令安装即可:

# yum install cmake

这里可能会出现报错,如果出现错误,请你根据提示安装相应依赖即可。另外,构建MySQL依赖于Boost C++库,应确保系统中已安装Boost 1.59.0(注意:mysql-5.7.22版本需要安装Boost 1.59.0版本,不要安装其他版本的boost)。

boost下载链接:https://sourceforge.net/projects/boost/files/boost/1.59.0/

下载后,将Boost 1.59.0解压到/usr/local目录下即可。

2.1 配置源码

完成以上准备工作,到这里就使用以下命令构建:

# cmake . -DWITH_BOOST=/usr/local/boost_1_59_0

2.2 源码编译

cmake构建成功后,使用make命令编译源码:

# make

注意:这里源码编译时间会比较长,需要半个小时左右,你可以去喝杯茶...

2.3 安装

编译成功后,使用make install命令安装MySQL:

make install

编译安装时,MySQL的默认安装目录为/usr/local/mysql。如果需要修改安装目录,请在安装时指定DESTDIR参数,如:

make install DESTDIR="/data/software/mysql"

安装完成后,可以通过mysql -V命令验证安装是否成功:

# mysql -V

三. 配置MySQL

编译安装MySQL后,我们还需要对MySQL进行一些设置。如:设置配置文件、创建核心数据库、启动MySQL服务器等。

3.1 新建mysql用户和用户组

运行MySQL的mysqld需要一个用户和用户组。在Linux系统中,可以通过adduser和addgroup命令来添加用户和用户组:

# 新建一个msyql组:

# groupadd mysql

# 新建msyql用户

# useradd -r -g mysql -s /bin/false mysql

3.2 初始化数据目录

MySQL安装后,初始化数据目录,数据目录用于存放MySQL数据库的表。使用Yum源安装或其它安装包安装的MySQL,会自动创建数据目录。而通过二进制和源代码编译安装的MySQL,需要手工初始化数据目录。

切换工具目录

切换到MySQL的安装目录,一般是/usr/local/mysql或 /usr/local:

# cd /usr/local/mysql

创建一个目录,将secure_file_priv中系统变量的进出口操作限制到该目录。

# mkdir mysql-files
# chmod 750 mysql-files
修改目录权限

为确保mysql用户有对安装目录的操作权限,需要修改安装目录下所有文件及目录的所有者及所属用户组:

# chown -R mysql .
# chgrp -R mysql .
初始化数据目录

全新安装的MySQL还需要初始化数据目录,而升级安装不需要。
在MySQL 5.7.6之后,使用服务器来初始化目录:

# bin/mysqld --initialize --user=mysql

通过mysqld初始化data目录时,如果使用--initialize选项,则会为'root'@'localhost'用户创建一个随机密码。该密码会打印在控制台,如下所示行中末尾就是临时密码:

如果希望使用一个空的初始密码,请使用 --initialize-insecure选项进行初始化。
而在MySQL 5.7.6之前,使用mysql_install_db初始化:

# bin/mysql_install_db --user=mysql
指定配置文件

如果要为MySQL服务器指定启动选项,可以通过/etc/my.cnf或/etc/mysql/my.cnf文件指定。如果不指定,会使用默认配置。安装路径的support-files目录下有一个默认的配置文件,将其复制到/etc目录下:

# cp support-files/my-default.cnf /etc/my.cnf

我安装时在support-files目录下没有找到默认的配置文件my-default.cnf,于是我就参照百度上的自己创建了。

3.3 启动MySQL

创建mysqld

support-files目录下有一个mysql.server,可以通过该文件启动MySQL服务器./support-files/mysql.server start。更常用的是将MySQL配置为系统服务,首先将其复制到/etc/init.d/目录并重命名为mysqld:

# cp support-files/mysql.server /etc/init.d/mysqld
添加开机启动服务

使用chkconfig将mysqld添加为开机自启动服务:

# chkconfig --add mysqld

检查添加是否成功:

# chkconfig --list mysqld

mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

启动MySQL服务器

添加为系统服务后,就可以通过service命令来启动MySQL服务器:

# service mysqld start

检查启动是否成功:

# netstat -anp|grep mysqld

登录及修改密码

在前面的步骤中,我们为'root'@'localhost'创建了一个临时密码,先使用这个密码登录:

# mysql -u root -p

登录成功后,使用以下命令修改新密码:

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

3.4 开启远程登录

MySQL默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问。
执行mysql 命令进入mysql 命令模式:

# mysql -uroot -p

输入密码登录成功后,接着输入:grant all privileges on . to 'root'@'%' identified by 'password' with grant option;
#这句话的意思是,允许任何IP(上面的 % 就是这个意思)的电脑,使用root帐户和密码(password)来访问MySQL Server。

使用flush privileges命令刷新MySQL的系统权限

# FLUSH PRIVILEGES;

最后,使用navicat测试远程访问成功!!!

MySQL终于安装完成了,哈哈!!为了这个被折腾了半天,终于可以松口气了。噢,对了,今天是六一节,我要过节去啦啦啦。

61 人推荐

声明:本文原创发布于加藤非博客,转载请注明出处:加藤非博客 jiatengfei.com 。如有侵权,请联系本站删除。

加藤非博客
请先登录再发表评论
  • 最新评论

  • 总共1条评论
加藤非博客

加藤非:linux下源码编译安装完成了,如你在安装过程中遇到问题可以与我交流!

2018-06-01 17:33:05 回复