一键编译安装MySQL-5.7.29(超详)


环境为 centos7(虚拟机)
版本为 MySQL-comunity.5.7.29

展望

希望通过详细的介绍,让初学者明白整个编译安装的思路,大概的一个方向,不是简单的停留在敲命令上。这对于编译安装的理解有很大的帮助。

官方文档

链接: link,https://dev.mysql.com/doc/refman/5.7/en/source-installation.html

1、解决依赖关系

yum  install cmake ncurses-devel gcc  gcc-c++  vim  lsof bzip2 openssl-devel -y

这里的关系可以看官方文档,安装之前一定记得先安装这些软件。

2、下载源码包

注意下载保存的位置

1.wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-5.7.29-1.el7.src.rpm
2.curl -o https://downloads.mysql.com/archives/get/p/23/file/mysql-community-5.7.29-1.el7.src.rpm

两种方法选其一

3、安装rpm包(可以理解为第一层解压)

rpm -ivh mysql-community-5.7.29-1.el7.src.rpm

将会生成一个 rpmbuilt目录,默认路径为root用户的家目录下。在路径/root/rpmbuilt/SOURCES下,就可以看到mysql-5.7.29.tar.gz和boost_1_59_0.tar.bz2

4、解压源码包(可理解为第二层解压)

tar xf mysql-5.7.29.tar.gz
tar xf boost_1_59_0.tar.bz2
mv boost_1_59_0  mysql-5.7.29

进入步骤3中的目录将其解压,这里划重点,同时也要将boost库解压,将其移动到mysql-5.7.29中。

5、建立mysql用户和存放数据文件

useradd -r  -s /sbin/nologin  mysql
mkdir -p  /data/mysql 

下一步中将会要设置mysql的启动用户和存放数据的文件,所以提前将其新建好。

6、编译前的配置

cd mysql-5.7.29
cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc  -DMYSQL_USER=mysql  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost_1_59_0

这里一定要先进入到mysql-5.7.29这个目录下,再运行,生成配置文件 Makefile
下面介绍cmake常用的参数:

  • -DCMAKE_INSTALL_PREFIX=/xxx/x
    设置mysql安装路径
  • -DMYSQL_DATADIR=/xxx/xxx/xx
    设置mysql数据保存路径
  • -DSYSCONFDIR=/xx/xx
    设置mysql配置文件保存路径
  • -DMYSQL_USER=mysql
    以那个用户来打开mysql服务
  • -DDEFAULT_CHARSET=utf8
    设置编码格式
  • -DDEFAULT_COLLATION=utf8_general_ci
    设置排序规则
  • -DWITH_BOOST=boost_1_59_0
    这里就是上面说的boost库,它是一个c++的扩展库。上面也是写路径,由于前面将其移动到mysql-5.7.29下,可以直接写其名字。

7、编译

#编译,启动2个进程去编译,加快速度
make -j  2

前提也是要在mysql-5.7.29目录下执行命令。这里根据自己电脑的配置选择进程去编译。在硬件允许的条件下,越多越好。这里编译大概需要20分钟左右,具体由电脑配置决定。

8、安装

#安装
make install

执行该命令需在编译好的mysql-5.7.29文件里,否则找不到上面步骤产生的编译配置文件。

9、配置文件

cp /etc/my.cnf /root/mysql.cnf.bak
>/etc/my.cnf

原配置文件为Linux自带mariadb的。
配置的内容如下:

[mysqld_safe]
log-error=/data/mysql/mysql.log
[client]

socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 256M
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m  mysql>

10、初始化及临时密码

cd  /usr/local/mysql/bin
./mysqld --initialize  --user=mysql --basedir=/usr/local/mysql/  --datadir=/data/mysql  &>/root/temp_password.txt

初始化mysqld,并将临时密码重定向到 /root/temp_password.txt里。

11、PATH和关闭防火墙

#修改PATH变量
echo  'PATH=$PATH:/usr/local/mysql/bin' >>/etc/bashrc
#关闭防火墙firewalld服务
service firewalld stop   
#设置firewalld服务开机不启动
systemctl  disable firewalld
#临时关闭selinux
setenforce 0
#永久修改selinux配置文件里的内容
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

防火墙看需要,选择是否关闭。

12、启动服务

cp  /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
#设置MySQL开机启动
chkconfig mysqld on
#启动MySQL
service  mysqld  start

13、登录MySQL

#从保存的临时密码文件里,截取出临时密码
temp_pwd=$(cat /root/temp_password.txt |tail -1|awk '{print $11}')
#给MySQL设置密码
mysql -uroot -p$temp_pwd  --connect-expired-password -e "set password='xxxxxxxxxx'"

参考

链接:http://blog.csdn.net/xyang81/article/details/51792144

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值