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

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

    • 展望
    • 官方文档
    • 1、解决依赖关系
    • 2、下载源码包
    • 3、安装rpm包(可以理解为第一层解压)
    • 4、解压源码包(可理解为第二层解压)
    • 5、建立mysql用户和存放数据文件
    • 6、编译前的配置
    • 7、编译
    • 8、安装
    • 9、配置文件
    • 10、初始化及临时密码
    • 11、PATH和关闭防火墙
    • 12、启动服务
    • 13、登录MySQL
    • 参考

环境为 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

你可能感兴趣的:(源码安装)