MySQL的完整安装(无报错)和shell脚本一键安装MySQL

安装MySQL的步骤(无报错版本)--11步

1.首先:停止MySQL服务(如果存在)

sudo systemctl stop mysqld 2>/dev/null

2.卸载MySQL相关软件包

sudo yum remove -y mysql* mysql-community*

3.删除MySQL相关文件和目录

sudo rm -rf /var/lib/mysql

sudo rm -rf /var/log/mysqld.log

sudo rm -rf /etc/my.cnf

sudo rm -rf /etc/my.cnf.d/

4.下载 MySQL 5.7 的 YUM 源配置文件

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm -O /tmp/mysql57.rpm

5.安装 MySQL YUM 源

sudo rpm -ivh /tmp/mysql57.rpm

rm -f /tmp/mysql57.rpm

6.验证 YUM 源是否生效

echo "检查YUM源..."

yum repolist enabled | grep mysql

7.安装 MySQL 5.7 服务器

echo "正在安装MySQL 5.7..."

sudo yum install -y mysql-community-server 如果报错,说密钥的问题导致不能正常下载

就在后面再加一个--nogpgcheck,表示跳过密钥

sudo yum install -y mysql-community-server --nogpgcheck

8.启动 MySQL 并设置开机自启

sudo systemctl start mysqld

sudo systemctl enable mysqld

9.检查服务状态

echo "检查MySQL服务状态..."

sudo systemctl status mysqld --no-pager

10.获取临时密码并修改

sudo grep 'temporary password' /var/log/mysqld.log

输出类似:

Note A temporary password is generated for root@localhost: Abc123def456!

记下这个临时密码(Abc123def456! 部分)

然后用临时密码登录 MySQL:

mysql -u root -p

11.修改 root 密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

#如果密码太简单,可能会报错 ERROR 1819 (HY000): Your password does not satisfy the

#current policy requirements,此时需要设置更复杂的密码。

一键安装脚本:

停止MySQL服务(如果存在)

sudo systemctl stop mysqld 2>/dev/null

卸载MySQL相关软件包

sudo yum remove -y mysql* mysql-community*

删除MySQL相关文件和目录

sudo rm -rf /var/lib/mysql

sudo rm -rf /var/log/mysqld.log

sudo rm -rf /etc/my.cnf

sudo rm -rf /etc/my.cnf.d/

下载 MySQL 5.7 的 YUM 源配置文件

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm -O /tmp/mysql57.rpm

安装 MySQL YUM 源

sudo rpm -ivh /tmp/mysql57.rpm

rm -f /tmp/mysql57.rpm

验证 YUM 源是否生效

echo "检查YUM源..."

yum repolist enabled | grep mysql

安装 MySQL 5.7 服务器

echo "正在安装MySQL 5.7..."

sudo yum install -y mysql-community-server 如果报错,说密钥的问题导致不能正常下载

就在后面再加一个--nogpgcheck,表示跳过密钥

sudo yum install -y mysql-community-server --nogpgcheck

启动 MySQL 并设置开机自启

sudo systemctl start mysqld

sudo systemctl enable mysqld

检查服务状态

echo "检查MySQL服务状态..."

sudo systemctl status mysqld --no-pager

获取临时密码

echo "获取临时密码..."

TEMP_PWD=(sudo grep 'temporary password' /var/log/mysqld.log \| awk '{print NF}')

if -z "$TEMP_PWD" ; then

echo "错误:未找到临时密码!请检查日志文件 /var/log/mysqld.log"

exit 1

fi

echo "临时密码: $TEMP_PWD"

提示用户手动修改密码(因为需要交互)

echo "请执行以下命令完成密码修改:"

echo "mysql -u root -p"

echo "输入临时密码后执行:"

echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';"

echo "注意: 密码需符合策略(至少8位,含大小写字母、数字和特殊字符)"

可选:自动尝试修改密码(非交互式,但可能因策略失败)

echo "尝试自动修改密码(可能因策略失败)..."

mysql -u root -p"$TEMP_PWD" <<EOF

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword123';

EOF

相关推荐
Mikko710 小时前
Linux 磁盘满了但 du 找不到?LVM 扩容 df 不变?fstab 写错开不了机?三台真机实测磁盘排查
linux·运维·centos
薛晓刚10 小时前
PGA 超限的一次应急处置:扩容、清游标、杀会话
数据库
蓝胖的四次元口袋10 小时前
Jenkins知识梳理(2)
运维·jenkins
CJi0NG10 小时前
【自用】MySQL-事务
数据库·mysql
yumgpkpm10 小时前
Acceldata ODP 3.3.6.4 vs CDP Private Cloud Base 7.3.2 对比
大数据·运维·服务器·hadoop·华为·zookeeper·hbase
VX_bysjlw98510 小时前
数码设备销售网站设计与实现39138-计算机毕设原创(免费领源码+带部署教程)
java·vue.js·spring boot·mysql·tomcat·mybatis·idea
Liuqy-0510 小时前
特殊进程——孤儿、僵尸、守护进程
linux·运维·服务器
我不会插花弄玉11 小时前
4.string类型【由浅入深-redis】
数据库·redis·缓存
PHP实战开发录11 小时前
MySQL数字排序为什么乱
数据库·mysql·php
考研保研资料分享11 小时前
自动化控制保研经验合辑:上交夏令营、北工大预推免与跨专业面试复盘(2025)
运维·面试·自动化