详细Mysql-8.0.29-源码编译安装

**

Mysql-8.0.29-源码编译安装

**

提示:此环境是在Centos7.9中完成


前言

①mysql下载网站:www.mysql.com
②https://dev.mysql.com/doc/refman/8.0/en/source-installation-prerequisites.html(注意mysql所需安装插件的版本)
③cmake下载地址:https://cmake.org/download/
④boost下载地址:https://www.boost.org/


一、环境准备

(1)GCC 7.1(最低编译版本)
(2)确保系统上安装了 OpenSSL 1.0.1 或更高版本
(3)cmake版本这里选择3.23.1
(4)安装 Boost ,一般编译安装时指定目录即可,会自动进行下载,
-DWITH_BOOST=/usr/local/boost_version_number

二、安装步骤

1.配置本地源

(在此之前记得挂载本地centos7.9镜像)

[root@centos7-server ~]# mdkir -p /media/centos/
[root@centos7-server mnt]# mount /dev/sr0 /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7-server mnt]# ls /mnt/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@centos7-server mnt]# \cp -rf /mnt/* /media/centos/   
/*---------------此行为分界线------------------------*/
[root@centos7-server mnt]# cd /etc/yum.repos.d
[root@centos7-server yum.repos.d]# ls
Media.repo
[root@centos7-server yum.repos.d]# cat Media.repo
[iso]
name=Media
baseurl=file:///media/centos/
gpgcheck=0
enabled=1
[root@centos7-server yum.repos.d] yum clean all
[root@centos7-server yum.repos.d] yum repolist

2.配置网络源(比较推荐,包都可以找到,1和2选择一种,选择1可能会有些包找不到或者安装包过于旧,不适合mysql8.0.29版本的编译安装)

代码如下(示例):

[root@centos7-server mnt]# cd /etc/yum.repos.d
cat: /etc/yum.repos.d: Is a directory
[root@centos7-server yum.repos.d]# ls
Media.repo
[root@centos7-server yum.repos.d]# cat Media.repo
[base]
name=CentOS-os
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0

[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=0

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0

[root@centos7-server yum.repos.d] yum clean all
[root@centos7-server yum.repos.d] yum repolist

3.安装依赖包

[root@centos7-server yum.repos.d]  yum -y install ncurses ncurses-devel gcc-* bzip2-* zlib* bison   bison-devel openssl openssl-devel
[root@centos7-server ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
/*********确保系统上安装了 OpenSSL 1.0.1 或更高版本*********/

4.安装gcc

[root@centos7-server ~]# yum install devtoolset-7-gcc* -y
[root@centos7-server ~]# yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils -y
[root@centos7-server ~]# scl enable devtoolset-7 bash
[root@centos7-server ~]# gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@centos7-server ~]# tail -1 /etc/profile
scl enable devtoolset-7 bash
/*************编辑/etc/profile中添加环境变量********************/
[root@centos7-server ~]. /etc/profile  
/********************加载配置*****************************/

5.安装cmake

[root@centos7-server ~]# tar xvf cmake-3.23.1.tar.gz
[root@centos7-server ~]# cd cmake-3.23.1
[root@centos7-server cmake-3.23.1]# ./configure
[root@centos7-server cmake-3.23.1]# make -j2 && make install

6.安装mysql

useradd -s /sbin/nologin -r mysql
mkdir -pv /usr/local/mysql/data
tar xvf mysql-8.0.29.tar.gz
cd mysql-8.0.29
cmake .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/data/  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock    -DENABLED_LOCAL_INFILE=1    -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_DEBUG=0  -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DFORCE_INSOURCE_BUILD=1 -DDOWNLOAD_BOOST_TIMEOUT=10000

cmake .  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql   指定安装路径  
-DMYSQL_DATADIR=/usr/local/mysql/data/   指定数据目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock    指定sock文件路径
-DENABLED_LOCAL_INFILE=1   允许使用Load data命令从本地导入数据
-DDEFAULT_CHARSET=utf8   -DDEFAULT_COLLATION=utf8_general_ci 安装所有字符集、默认字符集utf-8 、校验字符 
-DWITH_DEBUG=0  关闭debug
-DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DFORCE_INSOURCE_BUILD=1 允许boost 允许下载boost库文件。
-DDOWNLOAD_BOOST_TIMEOUT=10000 

make -j2 && make install 

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chown mysql.mysql /usr/local/mysql/ -R
ln -sf /usr/local/mysql/bin/\* /usr/bin/
ln -sf /usr/local/mysql/lib/\* /usr/lib/
ln -sf /usr/local/mysql/libexec/\*  /usr/local/libexec
ln -sf /usr/local/mysql/share/man/man1/\*  /usr/share/man/man1
ln -sf /usr/local/mysql/share/man/man8/\*  /usr/share/man/man8

修改配置文件 确保路径正确
egrep -v "^#|^$" /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql.sock

symbolic-links=0

[mysqld\_safe]

log-error=/var/log/mysql.log

pid-file=/var/run/mysql.pid

!includedir /etc/my.cnf.d

初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
会出现临时密码记得复制起来为接下的登录mysql做准备
例如:root@localhost: HKJsIl>s,96

启动mysql
/etc/init.d/mysql start

[root@centos7-server ~]# mysql -u root -p
Enter password: HKJsIl>s,96            //输入临时密码

进行数据库密码修改即可
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

总结

可能会出现的问题
my_print_defaults: Can’t read dir of ‘/etc/my.cnf.d’ (OS errno 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
直接mkdir /etc/my.cnf.d

bash: mysql: command not found
直接ln -s /usr/local/mysql/bin/mysql /usr/bin

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值