在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64

|-----------------------------|
| 💖The Begin💖点点关注,收藏不迷路💖 |

一、卸载MariaDB(如果已安装)

首先,检查系统中是否已安装MariaDB,因为MariaDB和MySQL在端口和配置文件上可能存在冲突。

bash 复制代码
rpm -qa | grep mariadb

如果发现有MariaDB相关包,使用yum命令进行卸载:

bash 复制代码
yum remove mariadb

二、下载MySQL源码包并解压

从MySQL官网下载MySQL 5.7的源码包,这里以5.7.42版本为例:

bash 复制代码
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz

tar -zxvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz


mv mysql-5.7.42-linux-glibc2.12-x86_64 mysql-5.7.42

三、安装编译所需的工具和库

使用yum安装编译MySQL所需的工具和库:

bash 复制代码
yum install gcc gcc-c++ cmake ncurses-devel bison openssl-devel rpcgen

四、创建MySQL的安装目录及数据库存放目录

创建MySQL的安装目录和数据库数据存放目录,并设置相应的用户和组权限:

bash 复制代码
mkdir -p /mysqlapp/mysql
mkdir -p /mysqlapp/mysql/data

groupadd mysql
useradd -g mysql mysql

mv /root/mysql-5.7.42/* /mysqlapp/mysql

chown -R mysql:mysql /mysqlapp/mysql
chown -R mysql:mysql /mysqlapp/mysql/data

五、编译安装MySQL

进入MySQL源码目录:

bash 复制代码
cd /mysqlapp/mysql/bin

[root@kylin01 bin]# ./mysqld --initialize --console --user=mysql --datadir=/mysqlapp/mysql/data --basedir=/mysqlapp/mysql/

六、配置MySQL

1、创建MySQL的配置文件/etc/my.cnf,并添加必要的配置项:

bash 复制代码
vi /etc/my.cnf

添加以下内容:

ini 复制代码
[mysqld]
port = 3306
user = mysql
basedir = /mysqlapp/mysql
datadir = /mysqlapp/mysql/data
pid-file = /mysqlapp/mysql/data/mysql.pid
sql_mode='ONLY_FULL_GROUP_BY'
log_error = /mysqlapp/mysql/mysql-error.log

[client]
port = 3306

2、创建 mysql-error.log 文件

perl 复制代码
sudo touch /mysqlapp/mysql/mysql-error.log

sudo chown mysql:mysql /mysqlapp/mysql/mysql-error.log

要不启动会报错:

perl 复制代码
[root@Kylin01 support-files]# sh mysql.server start
Starting MySQL.2024-08-22T11:57:51.565251Z mysqld_safe error: log-error set to '/mysqlapp/mysql/mysql-error.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/mysqlapp/mysql/data/mysql.pid).
[root@Kylin01 support-files]#

七、设置环境变量

将MySQL的bin目录添加到PATH环境变量中:

bash 复制代码
echo 'export PATH=/mysqlapp/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

八、启动MySQL服务

将MySQL的启动脚本复制到/etc/init.d/目录下,并启动MySQL服务:

bash 复制代码
cd /mysqlapp/mysql/support-files/

sh mysql.server start

九、登录MySQL并设置密码

使用初始化密码登录mysql。

perl 复制代码
mysql -u root -p

登录到MySQL后,你应该首先为root用户设置一个密码,以确保数据库的安全性。在MySQL 5.7中,你可以使用ALTER USER命令来设置密码。

sql 复制代码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zyl#2024';

请记得将'你的新密码'替换为你想要设置的密码。

十、验证MySQL安装

设置完密码后,你可以通过退出MySQL并重新登录来验证密码是否设置成功:

bash 复制代码
mysql> exit;

然后重新登录:

bash 复制代码
mysql -u root -p

系统会提示你输入密码,输入你刚刚设置的密码后,你应该能够成功登录到MySQL。

十一、配置MySQL服务开机自启

为了让MySQL服务在系统启动时自动运行,你可以使用chkconfig命令(如果系统支持)或systemctl(对于使用systemd的系统)来设置。

对于使用systemd的系统:

bash 复制代码
# 创建一个systemd服务文件(如果需要)
vi /etc/systemd/system/mysqld.service

然后,你可以根据MySQL的启动脚本内容填写该服务文件,或者简单地使用以下模板(注意,这只是一个基本模板,具体细节可能需要根据你的安装路径和配置进行调整):

bash 复制代码
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/mysqlapp/mysql/bin/mysqld --defaults-file=/etc/my.cnf

[Install]
WantedBy=multi-user.target

保存文件后,重新加载systemd的配置并启用MySQL服务:

bash 复制代码
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld

十二、配置防火墙(如果需要)

如果你的服务器运行了防火墙,并且MySQL需要通过网络被访问,你需要确保防火墙允许访问MySQL的默认端口(3306)。

对于使用firewalld的系统:

bash 复制代码
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload

|---------------------------|
| 💖The End💖点点关注,收藏不迷路💖 |

相关推荐
树℡独4 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
嵩山小老虎5 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模5 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324475 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Configure-Handler5 小时前
buildroot System configuration
java·服务器·数据库
津津有味道6 小时前
易语言TCP服务端接收刷卡数据并向客户端读卡器发送指令
服务器·网络协议·tcp·易语言
az44yao6 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.6 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
Genie cloud7 小时前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
一只自律的鸡7 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug