MySQL的编译安装

一、MySQL编译安装
1、准备工作

1)如果CentOS7.3已安装mariadb数据库,必须先将其卸载,然后再开始进行源码安装

[root@root ~]# rpm -q mariadb mariadb-5.5.52-1.el7.x86_64 
[root@root ~]# yum remove mariadb
[root@root ~]# yum -y install gcc gcc-c++ ncurses-devel openssl openssl-devel

2)MySQL 5.7 源码安装需要 cmake 编译安装,所以先下载最新稳定版本的 cmake 包并安装。官方下载网站:https://cmake.org/download/。

[root@root ~]# tar zxf cmake-3.16.2.tar.gz [root@www ~]# cd cmake-3.16.2
[root@root cmake-3.16.2]# ./configure
[root@root cmake-3.16.2]# gmake && gmake install

3)MySQL5.7 需要 Boost 库,所以也需要下载安装。这里下载 1_59_0 版本,这个Boost版本和 MySQL 的版本是相对应的。Boots官方下载网址是:

Boost C++ Libraries - Browse /boost at SourceForge.net

[root@root ~]# tar zxf boost_1_59_0.tar.gz 
[root@root ~]# mv boost_1_59_0/ /usr/local/boost
2、源码编译及安装

1)创建运行用户

为了加强数据库服务的权限控制,建议使用专门的运行用户,如 mysql 用户。此用户不需要直接登录到系统,可以不创建宿主文件夹。

[root@root ~]# groupadd mysql
[root@root ~]# useradd -M -s /sbin/nologin mysql -g mysql

 2)解包

将下载的 MySQL 源码包解压,释放到/usr/src 目录下,并切换到展开后的源码目录。

[root@root ~]# tar zxf mysql-5.7.28.tar.gz -C /usr/src 
[root@root ~]# cd /usr/src/mysql-5.7.28

3)配置

[root@root	mysql-5.7.28]#	cmake	-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/etc-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_E
XTRA_CHARSETS=all -DWITH_BOOST=/usr/local/boost

4)编译并安装

[root@root mysql-5.7.28]# make 
[root@root mysql-5.7.28]# make install
3、安装后的其他调整

1)建立配置文件

[root@root ~]# vim /etc/my.cnf 
[client]socket=/usr/local/mysql/data/mysql.sock 
[mysqld] 
socket=/usr/local/mysql/data/mysql.sock 
#绑定监听地址 0.0.0.0
bind-address = 0.0.0.0 
skip-name-resolve
#设置 3306 端口
port = 3306
# 设置mysql 的安装目录
basedir=/usr/local/mysql
# 设置mysql 数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=2048
# 服务端使用的字符集默认为
utf8 character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB 
lower_case_table_names=1 
max_allowed_packet=16M

2)初始化数据库

为了能够正常使用 MySQL 数据库系统,应以 mysql 用户的身份执行初始化,指定数据存放目录等。注意:最后一行会生成一个随机的临时密码,请牢记!

[root@root mysql-5.7.28]#/usr/local/mysql/bin/mysqld --initialize --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2017-02-16T08:19:09.867068Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-02-16T08:19:15.264290Z 0 [Warning] InnoDB: New log files created, LSN=45790 2017-02-16T08:19:15.887558Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-02-16T08:19:16.032143Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 9b23c0fc-f420-11e6-8562-44a8424bf8c2.
2017-02-16T08:19:16.050948Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-02-16T08:19:16.052183Z 1 [Note] A temporary password is generated for root@localhost: ;kL;lnmbu9oA //初始root 用户密码

3)设置环境变量

[root@root mysql-5.7.28]#echo "export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile  

[root@root mysql-5.7.28]# . /etc/profile	//立即生效
4、添加系统服务
[root@root mysql-5.7.28]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
[root@root mysql-5.7.28]# chmod +x /etc/rc.d/init.d/mysqld

将 MySQL 添加为 systemd 标准服务,之后方便使用“systemctl”命令进管理。

[root@root ~]# vim /lib/systemd/system/mysqld.service 
[Unit]
Description=mysqld 
After=network.target

[Service] 
Type=forking
ExecStart=/etc/rc.d/init.d/mysqld start 
ExecReload=/etc/rc.d/init.d/mysqld restart 
ExecStop=/etc/rc.d/init.d/mysqld stop

PrivateTmp=true


[Install]
WantedBy=multi-user.target
[root@root ~]# systemctl daemon-reload 
[root@root ~]# systemctl enable mysqld 
[root@root ~]# systemctl start mysqld

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值