【原创】mysql8.x之编译安装全过程

前言:mysql5.7.x以上版本编译安装严重依赖boost库,不同版本boost也不同。因此下载mysql最好选择下载自带boost的版本。本文以mysql8.0.25为例,对应boost版本为boost_1_73_0,系统为centos7.x,数据库安装位置/usr/local/mysql

1、下载mysql8.0.25地址

注意:下载如图所示boost版本

2、创建用户组和用户(非root的安全运行账户)

groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin

3、安装必备库

yum -y install ncurses ncurses-devel cmake patchelf

注意:centos7.x和centos8.x差别很大(centos8默认依赖库版本较高,升级依赖基本免了)

1)centos7.x环境下,cmake默认版本太低(至少cmake-3.5.1),centos8貌似就木这问题

cmake -version

yum升不上去,干掉先!

yum -y remove cmake

下载最新版cmake-3.22.1,地址

cd /usr/local/src
tar zxvf cmake-3.22.1.tar.gz
cd cmake-3.22.1
./configure --prefix=/usr/
gmake && make install

注意

a)编译cmake别使用默认参数,否则cmake -version会报错,请务必指定--prefix=/usr/ 

b)cmake -version真报错了咋办,凉拌~加入环境变量

vim /etc/bashrc
export PATH=/usr/local/lib:$PATH

2)centos7.x的gcc版本也够不着,升级gcc?莫要瞎折腾~

centos官方为你准备了贴心小甜点,升级devtoolset就好,mysql8.0.25对应devtoolset-10,其他8.x版本俺说不准,因为官方一直在偷偷升级。编译mysql报错会提醒你版本~

以升级devtoolset-10为例,其他版本请按照报错提示,修改下面数字10即可

yum -y install centos-release-scl
yum -y install devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-binutils
scl enable devtoolset-10 bash

3) centos7.x的patchelf依赖下不来(不能迷信centos,各家云平台yum源差异大)

官方patchelf去下载,地址

cd /usr/local/src
tar zxvf patchelf-0.14.5.tar.gz
cd patchelf-0.14.5
./configure
make && make install

4、 创建目录

mkdir /usr/local/mysql
mkdir /usr/local/mysql/tmp
mkdir /usr/local/mysql/etc
mkdir /data/logs  # mysql日志文件夹
mkdir /data/mysql  # mysql数据库文件夹

5、编译安装mysql

(注意  -DWITH_BOOST=./boost 路径是相对,解压后boost文件位于源文件目录下)

重要的事情提前说:mysql8.x是天坑,编译时文件解压的空间强烈建议>40G!!!!30G真得很勉强,成功全靠运气!编译等了one hour,系统告诉你硬盘空间不足:)

cd /usr/local/src 
tar zxvf mysql-boost-8.0.25.tar.gz   
cd mysql-8.0.25

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql/etc -DSYSTEMD_PID_DIR=/usr/local/mysql -DDEFAULT_charset=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_READLINE=on -DMYSQL_DATADIR=/data/mysql -DWITH_BOOST=./boost -DWITH_SYSTEMD=1 -DFORCE_INSOURCE_BUILD=1

重要的事情说三遍:注意!注意!!注意!!!

1)如果主机配置较高(至少4核8G以上),建议使用加速编译,否则慢如龟速

不确定内核数?先查看下主机配置

grep processor /proc/cpuinfo | wc -l

确认配置过硬,迅速开启多核加速编译之旅~(一般20min左右,配置越好编译越快)

make -j 4 && make install  # 表示4CPU核心

2)如果是弱鸡,还是老实等到海枯石烂(先快后慢,一般在1个小时左右)

make && make install

6、配置文件my.cnf(移动到安装文件夹,优化自行解决,不赘述)

mv /etc/my.cnf /usr/local/mysql/my.cnf

7、添加软链接

ln -sv /usr/local/mysql/bin/mysql /usr/sbin/mysql
ln -sv /usr/local/mysql/bin/mysqladmin /usr/sbin/mysqladmin
ln -sv /usr/local/mysql/bin/mysqldump /usr/sbin/mysqldump

8、文件夹授权(安装文件夹、数据库文件夹、日志文件夹)

chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /data/logs
chmod +x /usr/local/mysql

9、数据初始化

/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --initialize-insecure

10、创建额外文件夹(部分环境不创建启动会报错,原因不明,不去深究了,随手一下下)

mkdir /var/lib/mysql-files

11、设置开机启动

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable mysqld

12、启动数据库

systemctl start mysqld

13、修改root密码(默认为空)

网上有文章说,mysql8.x初始root密码在log文件里,这里默认是空,你自己改复杂点

1)默认加密方式改为mysql_native_password,密码永不过期never,要不等会儿navicat配置账户密码时总对不上!

2)友好提示:为方便navicat远程连接mysql,把root的host顺手改成%

mysql -h localhost -u root
use mysql;
select user,host,authentication_string from mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码很复杂我看不见' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码很复杂我猜不着';
update mysql.user set host='%' where user='root';
FLUSH PRIVILEGES;

14、开始愉快玩耍~over

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值