在银河麒麟服务器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💖点点关注,收藏不迷路💖 |

相关推荐
一个响当当的名号3 小时前
一些主要应用和NAT
运维·服务器·网络
@小博的博客3 小时前
【Linux探索学习】第二篇Linux的基本指令(2)——开启Linux学习第二篇
linux·运维·学习
贝多芬也爱敲代码4 小时前
如何减小ES和mysql的同步时间差
大数据·mysql·elasticsearch
安当加密4 小时前
MySQL数据库透明加密(TDE)解决方案:基于国密SM4的合规与性能优化实践
数据库·mysql·性能优化
openHiTLS密码开源社区5 小时前
【密码学实战】openHiTLS passwd命令行:专业密码哈希生成工具
linux·密码学·哈希算法·ldap·密码策略·随机盐值
007php0075 小时前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展
筵陌5 小时前
深入理解 Reactor 反应堆模式:高性能网络编程的核心
服务器
WTCLLB5 小时前
netgear r6220 路由器,刷openwrt后,系统备份还原
linux·网络·智能路由器·openwrt
JH30735 小时前
第七篇:Buffer Pool 与 InnoDB 其他组件的协作
java·数据库·mysql·oracle
迎風吹頭髮6 小时前
UNIX下C语言编程与实践38-UNIX 信号操作:signal 函数与信号捕获函数的编写
linux·c语言·unix