速看!centos7下源码安装mysql5.7
前面我们已经成功通过yum源安装了mysql5.7的环境。但是实际的项目中,往往是指定了mysql的某个版本进行安装。此时通过源码编译安装无疑是最好的选择,而且通过源码安装,也可以更方便我们自定义安装环境。因此今天我们通过源码安装mysql5.7的社区版本,其他版本的安装简直就是大同小异。
1、mysql源码下载
https://www.mysql.com/
2)选择Archievs后即可选择不同的版本下载
3)如我这里选择mysql5.7.24版本,下载其源代码包
选择如下源码包,下载即可。
2、boost源码下载
安装mysql5.7及以上版本,要依赖boost
下载网址为:
http://www.boost.org/users/download/
这个版本的MySQL要求boost的版本是1.59,链接为:
http://www.boost.org/users/history/version_1_59_0.html
下面给出boost 1.59.0的链接,在/usr/local/src目录下直接用wget进行下载
wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
我这里下载好后解压至/ruanjianfile/boost/目录下。
3、安装编译环境所需要的编译工具
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
yum install libaio libaio-devel -y
yum install perl-Data-Dumper -y
yum install net-tools -y
或直接执行
yum -y install gcc gcc-c++ glibc automake autoconf libtool make openssl openssl-devel ncurses ncurses-devel
4、检查下载与mysql相关的软件包或版本
1)首先检查你所用的Linux下有没有安装过mysql,有没有卸载干净,卸载CentOS7默认携带的。
rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb
通过yum remove 相关包名进行卸载干净。
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64
#注:如上命令删除不成功,有别的软件依赖无法删除时,如下操作:
yum remove mariadb-libs-5.5.44-2.el7.centos.x86_64
或
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
2)并删除所有的相关文件:
rm -rf /etc/my.cnf
5、创建安装mysql相关的文件目录
mkdir -p /database/mysql/data
mkdir -p /database/mysql/tmp
mkdir -p /database/mysql/binlog
mkdir -p /database/mysql/logs
6、创建mysql组和mysql用户
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
[root@huanghao2 mysql]# id mysql
uid=1000(mysql) gid=1000(mysql) groups=1000(mysql)
注意:
-s /sbin/nologin 用户不能登录系统
-M 不创建用户的home家目录
-g 指定用户登录组的gid或组名
7、加压mysql源码
要把mysql源码上传到系统,我这里放在/data目录下。
cd /data
tar -xzf mysql-5.7.24.tar.gz
8、cmake编译mysql
1)解压后,进入加压目录进行编译,如
cd /data/mysql-5.7.24
cmake \
-DCMAKE_INSTALL_PREFIX=/database/mysql \
-DMYSQL_DATADIR=/database/mysql/data \
-DMYSQL_UNIX_ADDR=/database/mysql/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_EMBEDDED_SERVER=1 \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_SSL=yes \
-DWITH_DEBUG=0 \
-DDOWNLOAD_BOOST=1 \
/ruanjianfile/boost =
2)待编译没有问题后,即可安装。如下表示编译成功。
注:如果编译出现错误,请先删除CMakeCache.txt后,检查环境后再重新编译:
rm -rf CMakeCache.txt
3)安装
make install
等待安装完成,时间可能比较久,出现如下图表示安装成功。
9、配置mysql系统环境变量
1)修改/etc/profile
echo 'export PATH=/database/mysql/bin:$PATH' >> /etc/profile
2)使环境变量生效
source /etc/profile
10、初始化mysql数据库
1)更改mysql安装目录的属主和属组
chown -R mysql:mysql /database/mysql/
2)修改mysql的配置文件
修改/etc/my.cnf文件,和5.6之前的版本不一样,5.7版本support-file目录下没有.cnf文件,因此需要自己手动编辑。
vi /etc/my.cnf
创建编辑新增内容如下:
[client]
port = 3306
socket = /database/mysql/tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /database/mysql
datadir = /database/mysql/data
pid-file = /database/mysql/mysqld.pid
socket = /database/mysql/tmp/mysql.sock
tmpdir = /database/mysql/tmp
character_set_server = utf8
server-id = 1
max_connections = 100
max_connect_errors = 10
log-bin = /database/mysql/binlog/mysql-bin
log-error = /database/mysql/logs/mysql_5_7_24.err
3)修改配置文件的属主和属组
chown mysql:mysql /etc/my.cnf
4)初始化数据库,进入到安装目录
cd /database/mysql/
./bin/mysqld --initialize-insecure --user=mysql --basedir=/database/mysql --datadir=/database/mysql/data
11、mysql实例开启ssl连接,进入到安装目录
cd /database/mysql/
./bin/mysql_ssl_rsa_setup --initialize-insecure --user=mysql --basedir=/database/mysql --datadir=/database/mysql/data
12、修改server-key.pem文件权限,进入到/database/mysql/data/目录
cd /database/mysql/data/
chmod +r server-key.pem
13、启动mysql数据库服务
1)拷贝启动脚本到/etc/init.d/目录下,并改名mysqld
cp /database/mysql/support-files/mysql.server /etc/init.d/mysqld
2)重新加载系统服务,将mysql数据库加入到开机自启动
systemctl daemon-reload
systemctl enable mysqld.service
chkconfig mysqld on
3)启动mysql服务
systemctl start mysqld
4)查看mysql服务状态
systemctl status mysqld
14、对数据库配置安全认证
待数据库正常安装启动后,便可以通过mysql进入到数据库终端。
1)通过数据库语句进行相关操作,包括给数据库用户设置密码,远程主机认证等。
mysql -uroot -p
#不用密码,回车即可进入mysql命令终端
select user,host from mysql.user;
set password for 'mysql.session'@'localhost' = password('123456');
set password for 'mysql.sys'@'localhost' = password('123456');
set password for 'root'@'localhost' = password('123456');
flush privileges;
2)对root用户进行授权远程登录
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
3)此时退出mysql命令终端,重新登录终端,就需要密码认证了。
mysql命令终端下通过命令查看就是我们安装的版本。
select version();
到此,mysql5.7.24版本通过源代码编译安装完成。实际工作中,针对各种环境的部署,都有可能让我们自己去安装部署,因此掌握如何部署,还是显得很重要的。如果安装过程中,你们遇到报错,安装不成功,可留言大家一起讨论。
往期内容回顾: