暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

RHEL8环境源码编译安装MySQL8.0

1222
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
擅长主流数据Oracle、MySQL、PG、openGauss运维
备份恢复,安装迁移,性能优化、故障应急处理等

文章目录

前言

Linux源码安装MySQL在实际安装的操作系统进行可根据需要定制编译,最灵活,性能最好.

📣 1.源码安装包下载

官网下载地址:https://dev.mysql.com/downloads/mysql/
源码包下载选择Source Code,无需选择操作系统平台

在这里插入图片描述

📣 2.环境准备

安装任何数据库之前,操作系统环境准备至关重要,本次实操是基于RHEL8操作系统。源码安装对环境要求比较高,涉及部分系统内核的升级。

✨ 2.1 操作系统

[root@jeames ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.1 (Ootpa)

✨2.2.关闭防火墙

查看防火墙是状态
[root@jeames ~]# systemctl status firewalld
关闭防火墙
[root@jeames ~]# systemctl stop firewalld
取消开机自启动
[root@jeames ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

✨2.3.selinux关闭

修改参数文件/etc/sysconfig/selinux中SELINUX的值为disabled
[root@jeames ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
修改完成后需要重启服务器才生效

✨2.4.Host解析配置

[root@jeames ~]# hostname jeames [root@jeames ~]# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #此处新增hostname与ip的对应 192.168.6.10 jeames

✨2.5.卸载mariadb

为了保证后续操作不会产生其他冲突,我们卸载部分操作系统自带原有的mariadb
[root@jeames ~]# rpm -qa|grep mariadb
[root@jeames ~]# rpm -qa|grep mariadb-libs|xargs rpm -e --nodeps

📣 3.配置yum安装依赖

1.创建挂载路径 [root@jeames ~]# mkdir -p /mnt/cdrom 2.挂载系统镜像光盘到指定目录 #因为光盘的格式通常是iso9660,意思是/dev/sr0挂载在/mnt/cdrom目录上 [root@jeames ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only. 3.修改yum源配置文件 编辑rhel8-local.repo文件 [root@jeames ~]# cd /etc/yum.repos.d [root@jeames yum.repos.d]# vi rhel8-local.repo [localREPO] name=localhost8 baseurl=file:///mnt/cdrom/BaseOS enable=1 gpgcheck=0 [localREPO_APP] name=localhost8_app baseurl=file:///mnt/cdrom/AppStream enable=1 gpgcheck=0 4.配置好后重建本地缓存 yum clean all yum makecache yum repolist 5.安装MySQL 8.0源码所需的依赖包 [root@jeames ~]# yum -y install lrzsz wget perl-Digest-MD5 [root@jeames ~]# yum -y install libaio #编译软件依赖 [root@jeames ~]# yum -y install cmake gcc gcc-c++ [root@jeames ~]# yum -y install git make [root@jeames ~]# yum install libtirpc-devel [root@jeames ~]# yum insatll rpcgen [root@jeames ~]# yum install libudev-devel [root@jeames ~]# yum install ncurses-devel #字符终端处理依赖 [root@jeames ~]# yum install openssl openssl-devel ncurses 注解:rpcgen需要手动下载安装包编译安装 以下就是具体解决Mysql源码编译报错Could not find rpcgen的方法。 rpcgen下载参考 https://github.com/thkukuk/rpcsvc-proto/releases xz -d rpcsvc-proto-1.4.4.tar.xz tar -xvf rpcsvc-proto-1.4.4.tar cd rpcsvc-proto-1.4.4 ./configure make make install

在这里插入图片描述

📣 4.源码安装

1.解压软件包 #创建软件目录 [root@jeames ~]# mkdir -p /soft 2.上传软件包 #通过Xftp工具或者SecureCRT自带的Sftp上传软件包 mysql-boost-8.0.27.tar.gz 3.校验安装包 [root@jeames ~]# cd /soft [root@jeames soft]# md5sum mysql-boost-8.0.27.tar.gz 80310c5a1b24145fa072927ab99a4c0d mysql-boost-8.0.27.tar.gz 注:md5sum是linux下的shell命令,其功能是计算检验MD5效验码, 是为了MySQL安装包是否损坏 4.解压缩安装包 [root@jeames soft]# tar -zxf mysql-boost-8.0.27.tar.gz 5.编译安装 #初始化 [root@jeames soft]# cd mysql-8.0.27 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DENABLE_DTRACE=0 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EMBEDDED_SERVER=1 \ -DDOWNLOAD_BOOST=1 \ -DFORCE_INSOURCE_BUILD=1 \ -DWITHOUT_PARTITION_STORAGE_ENGINE=0 \ -DCMAKE_C_COMPILER=/usr/bin/gcc \ -DCMAKE_CXX_COMPILER=/usr/bin/g++ \ -DWITH_BOOST=/soft/mysql-8.0.27/boost #编译 [root@jeames mysql-8.0.27]# make -j4 #安装 [root@jeames mysql-8.0.27]# make install

✨4.1 安装报错处理

在这里插入图片描述

查阅相关信息后,认为是虚拟机内存不足造成的。
通过创建swap分区解决了这个问题,编译成功。加到内存到8G ,SWAP交换区增加了4G即可
可以通过以下方法增大swap交换分区
dd if=/dev/zero of=/swapfile bs=1024 count=4194304
mkswap /swapfile
swapon /swapfile
swapon -s
vim /etc/fstab
/swapfile swap swap defaults 0 0
mount -a

在这里插入图片描述
在这里插入图片描述

📣 5.安装MySQL

✨5.1 用户及组

groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql

✨5.2 参数文件

cat > /etc/my.cnf <<“EOF”
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
server_id=80273306
log-bin
skip-name-resolve
character_set_server=utf8mb4
#default-time-zone = ‘+8:00’
log_timestamps = SYSTEM
EOF

✨5.2 MySQL初始化

/usr/local/mysql/bin/mysqld --initialize-insecure
–basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

✨5.4 环境变量设置

echo “export PATH=$PATH:/usr/local/mysql/bin” >> /root/.bashrc
source /root/.bashrc

在这里插入图片描述

📣 6.启动关闭

启动MySQL:
mysqld_safe &
登录MySQL,默认密码为空 :
mysql -uroot -p
关闭MySQL
mysqladmin -uroot -p shutdown

在这里插入图片描述

📣 7.开机启动配置

✨7.1 服务配置

vi /usr/lib/systemd/system/mysqld.service ##加入以下内容即可 [Unit] Description=Mysql server After=network.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize $OPTIONS ExecReload=/bin/kill -HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID KillMode=process LimitNOFILE=65535 Restart=on-failure RestartSec=10 RestartPreventExitStatus=1 PrivateTmp=false

✨7.2 加载设置

systemctl daemon-reload
systemctl stop mysqld
systemctl enable mysqld

systemctl status mysqld
systemctl start mysqld
systemctl enable mysqld
在这里插入图片描述

欢迎关注我的公众号【IT邦德】,第一时间一起学习新知识!
————————————————————————————
公众号:IT邦德
CSDN :https://jeames.blog.csdn.net/
墨天轮:https://www.modb.pro/u/8580
知乎:https://www.zhihu.com/people/wang-ding-ding-71-72
bilibili:https://space.bilibili.com/660863136
————————————————————————————

image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论