MySQL的编译安装-详细(5.7.29)

MySQL的编译安装

记录本人在阿里云服务器上编译安装MySQL5.7.29的全过程(2020/8/13 12:00)
安装的方式都差不多,可以按自己的需要下载其他版本
直接上步骤,看官按需修改即可:

1、下载MySQL源码包并上传至linux

这一步很简单,就是去MySQL的官网下载MySQL社区版5.7.29的源码包
地址:https://downloads.mysql.com/archives/community/
上传Linux可以使用Xftp或者Linux的lrzsz命令中的rz命令

2、解压源码包和安装解决MySQL软件依赖关系的包

解压源码包:

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

安装解决MySQL软件依赖关系的包:

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

3、新建用户mysql及新建数据目录文件夹,并修改数据目录的拥有者为mysql

新建用户:

useradd -r -s /sbin/nologin mysql

新建文件夹:

mkdir -p /data/mysql

修改数据目录的拥有者为mysql:

chown  mysql:mysql /data/mysql  

4、进入源码包位置并解压源码包,并将boost包移动到mysql解压的包里

进入目录:

cd /root/rpmbuild/SOURCES

解压源码包并移动:

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

5、进入mysql-5.7.29并进行编译前的配置

进入目录:

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

参数讲解:

  • -DCMAKE_INSTALL_PREFIX=/usr/local/sc_mysql 指定MySQL的安装路径
  • -DMYSQL_DATADIR=/data/mysql 指定MySQL的存放目录
  • -DSYSCONFDIR=/etc 指定MySQL配置文件的存放位置
  • -DMYSQL_USER=mysql 指定用户名
  • -DDEFAULT_CHARSET=utf8_general_ci 指定默认的字符集为utf-8
  • -DWITH_BOOST=boost_1_59_0 指定boost源

6、编译安装

启动2个进程去编译,加快速度:

make -j  2

这里的数字2为进程,根据cpu核数自行修改
安装编译好的二进制文件到指定的目录:

make install 

7、备份原来的my.cnf配置文件,然后清空这个文件,这个文件是mariadb的配置文件,不是mysql的

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

第一行是备份,第二行是清空

8、进入编译安装好的mysql的目录,并初始化mysql,并且将日志和临时密码重定向到/root/temp_password.txt文件里

进入目录:

cd /usr/local/mysql/bin

初始化:

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

9、修改PATH变量并拷贝mysqld的程序文件到指定的目录,方便后面设置mysqld服务开机启动

echo  'PATH=$PATH:/usr/local/mysql/bin' >>/etc/bashrc
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

10、启动mysql

service  mysqld  start

从保存的临时密码文件里,截取出临时密码,赋值给一个变量temp_pwd

temp_pwd=$(cat /root/temp_password.txt |tail -1|awk '{print $11}')

给MySQL设置密码:

mysql -uroot -p$temp_pwd --connect-expired-password -e “set password=‘此处填写密码’”

进入MySQL:

mysql -uroot -p"此处填写密码"

11、修改配置文件my.cnf

my.conf配置
#socket是用来指定socket文件的路径,方便客户端连接找到

[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock

你可能感兴趣的:(MySQL)