我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

MySQL8源代码安装(CentOS8版本)-创新互联

目标

在CentOS8上面源代码编译安装MySQL8.

创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为紫金企业提供专业的网站设计制作、成都网站制作紫金网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。下载源代码

打开MySQL下载页面:
https://www.mysql.com/downloads/

找到MySQL社区版本页面:
MySQL社区版本页面
选择下载MySQL社区版服务器进行下载:
MySQL社区服务器版
最后选择,MySQL源代码进行下载,如下图:
mysql源代码下载boost

这里选择了与平台无关的的源代码进行下载,注意这里需要包含boost。

安装

检查下载的源代码没有问题后,将源代码上传到需要安装的linux服务器上面。

# 检查用户组是否存在
cat /etc/group | grep mysql
# 检查用户是否存在
cat /etc/passwd | grep mysql
# 添加用户组
groupadd mysql
# 添加用户
useradd -r -g mysql -s /bin/false mysql
# 解压安装包
tar zxvf ./mysql-boost-8.0.31.tar.gz
# 进入源码目录
cd ./mysql-8.0.31/
# 创建编译目录
mkdir bld
# 进入编译目录
cd bld
# 创建安装目录
mkdir /opt/mysql
# 配置
cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost
# 编译
make
# 安装
make install

参数说明:

  • -DBUILD_CONFIG=mysql_release:表示使用与官方一样的配置;
  • -DCMAKE_INSTALL_PREFIX=/opt/mysql:设置安装的目录;
  • -DCPACK_MONOLITHIC_INSTALL=1:使 make package 生成单个安装文件;
  • -DWITH_DEBUG=0:禁用debug;
  • -DWITH_SSL=system:支持ssl;
  • -DWITH_BOOST=$HOME/mysql-8.0.31/boost:boost安装目录。

期间遇到的依赖问题:

dnf install gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils 
dnf install gcc-toolset-11-annobin-plugin-gcc
准备数据库配置文件
# 到安装目录
cd /opt/mysql/
# 参加数据库数据文件目录
mkdir data
# 修改权限
chown mysql:mysql data
chmod 750 data
# 准备数据库配置
vim my.cnf
my.cnf
[mysqld]
port=3306
socket=/tmp/mysql.sock
mysqlx-port=33060
mysqlx-socket=/tmp/mysqlx.sock
basedir=/opt/mysql
datadir=/opt/mysql/data
初始化与启动数据库
bin/mysqld --defaults-file=./my.cnf --initialize --user=mysql

输出如下:

2023-01-18T06:45:20.659891Z 0 [System] [MY-013169] [Server] /opt/mysql/bin/mysqld (mysqld 8.0.31) initializing of server in progress as process 1965037
2023-01-18T06:45:20.667103Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-18T06:45:20.987887Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-18T06:45:22.135569Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxx
# 设置ssl
bin/mysql_ssl_rsa_setup
# 手动启动数据库
bin/mysqld_safe --defaults-file=./my.cnf --user=mysql

保持前台手动启动mysql进程,新开一个窗口,来加固mysql:

bin/mysql_secure_installation --port=3306 -h 127.0.0.1 -p
测试
mysql -P 3306 -h 127.0.0.1 -u root -p

输出如下:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.31 Source distribution

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>

这样就表示mysql启动成功了。
关闭mysql前台运行方式:

bin/mysqladmin shutdown -h 127.0.0.1 -P 3306 -p

输入正确的root密码,就会关闭mysqld进程。

注册为系统服务 init旧脚本:
# 负责系统服务配置文件
cp support-files/mysql.server /etc/init.d/mysql.server
# 重新加载配置文件
systemctl daemon-reload
# 注册为系统服务
systemctl enable mysql.server.service
# 启动数据库
systemctl start mysql.server.service
# 查看数据库启动状态
systemctl status mysql.server.service
# 停止数据库
systemctl stop mysql.server.service
Sys V新脚本:

如果在配置编译时,使用如下配置:

cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost -DWITH_SYSTEMD=1 -DSYSTEMD_PID_DIR=/var/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld

即配置如下:
-DWITH_SYSTEMD=1 -DSYSTEMD_PID_DIR=/var/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld
这样就是让源码编译生产sys v的脚本。

cp ./usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld.service
# 重新加载配置文件
systemctl daemon-reload
# 注册为系统服务
systemctl enable mysqld.server.service
# 启动数据库
systemctl start mysqld.server.service
# 查看数据库启动状态
systemctl status mysqld.server.service
# 停止数据库
systemctl stop mysqld.server.service

注意:这里这种方式sys v读取的my.cnf位置在/opt/mysql/etc/my.cnf这个位置。

总结

到这里基本上就完成了mysql8的源码安装了。并且使用mysql提供的服务脚本,做成了系统服务。

参考:
  • 播布客小辉老师MySQL课程
  • 2.9.4 Installing MySQL Using a Standard Source Distribution
  • 2.9.6 Configuring SSL Library Support
  • 2.9.7 MySQL Source-Configuration Options
  • 5.1.8 Server System Variables
  • 2.5.9 Managing MySQL Server with systemd

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:MySQL8源代码安装(CentOS8版本)-创新互联
本文地址:http://shouzuofang.com/article/dcopds.html

其他资讯