当前位置: 首页 > article >正文

mysql5安装

1.下载安装包
https://downloads.mysql.com/archives/community/

mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar

tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述

2.安装依赖

yum -y install perl
yum -y install net-tools
yum install  numactl libaio libaio-devel -y

也可以离线安装这些依赖

rpm -ivh *.rpm --force --nodeps

在这里插入图片描述

3.安装

rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm

4.修改数据存储目录和端口号

vim /etc/my.cnf
[mysqld]
port=3307
datadir=/data/mysql

在这里插入图片描述
chown -R mysql:mysql /data/mysql
chmod -R 755 /data/mysql

如果是数据迁移,那么执行如下:

mv /var/lib/mysql /data/mysql

5.启动

systemctl start mysqld

查看状态

systemctl status mysqld

6.启动失败
如果启动报了权限问题,无法访问数据目录,可能是selinux的问题

6.1. 临时禁用 SELinux
为了快速测试是否 SELinux 是问题的根源,可以暂时将 SELinux 设置为宽容模式(permissive),这样可以允许访问,但会记录违规操作:

setenforce 0

此命令将 SELinux 模式切换到宽容模式。然后,尝试重新启动 MySQL 服务:

systemctl start mysqld

6.2. 检查 MySQL 是否成功启动

systemctl status mysqld

6.3. 确认 SELinux 策略
如果 MySQL 成功启动,那么问题很可能与 SELinux 的策略有关。要确保 MySQL 访问 /data/mysql 目录的权限,可以使用以下命令:

chcon -R -t mysqld_db_t /data/mysql

如果有单个文件权限不对,也可以修改单个文件权限

chcon -t mysqld_db_t /data/mysql/ibtmp1

还不行的话执行下面6.5章节的命令

semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv /data/mysql

然后再执行以下命令将端口 3307 添加到 SELinux 上下文中,使 MySQL 可以绑定到此端口:

semanage port -a -t mysqld_port_t -p tcp 3307

如果端口 3307 已经存在并且设置了其他标签(例如 unreserved_port_t),可以先删除旧的上下文:

semanage port -d -p tcp 3307

然后重新添加 mysqld_port_t 标签,然后再重启mysql,会成功

在这里插入图片描述

这个命令将会为 /data/mysql 目录及其内容设置合适的 SELinux 上下文。

6.4. 重新启用 SELinux
在进行上述步骤后, 可以将 SELinux 恢复到强制模式:

setenforce 1

检查 SELinux 审核日志

ausearch -m avc -ts recent | grep mysqld

6.5. 持久化 SELinux 修改
如果 MySQL 启动正常并且您需要保留 SELinux 设置,可以考虑创建一个持久化的策略,以确保即使在重启后也能应用该上下文。这可以通过 semanage 工具来实现,您可能需要先安装 policycoreutils-python(CentOS 7 中):

yum install policycoreutils-python

然后,运行以下命令来为 /data/mysql 目录设置上下文:

semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv /data/mysql

7.登录成功,查看修改

cat /var/log/mysqld.log | grep password

在这里插入图片描述

2024-11-03T09:06:59.466166Z 1 [Note] A temporary password is generated for root@localhost: =q.v3#>wx1)U

密码是冒号后面的那一窜
=q.v3#>wx1)U

登录

mysql -u root -p --port=3307

设置密码最小长度策略

set global validate_password_length=6;

设置密码强度检查等级策略,0/LoW、1/MEDIUM、2/STRONG

set global validate_password_policy=0;

修改密码

set password for 'root'@'localhost' = password('zzybzb');

开启MySQL远程连接(%号即远程连接,IDENTIFIED BY后面跟的密码)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zzybzb';

刷新,重新加载

flush privileges; 

http://www.kler.cn/a/377874.html

相关文章:

  • 利用Gurobi追溯模型不可行原因的四种方案及详细案例
  • PostgreSQL 的历史
  • 【Spring】Spring框架之-AOP
  • Qt:QMetaObject::connectSlotsByName实现信号槽自动关联
  • linux----文件访问(c语言)
  • 使用qemu搭建armv7嵌入式开发环境
  • Qt6 CMake 中引入 Qt Linguist 翻译功能
  • 服务器数据恢复—RAID5阵列中部分成员盘重组RAID5阵列后如何恢复原raid5阵列数据?
  • 九识智能与徐工汽车达成战略合作,共绘商用车未来新蓝图
  • 基于Spring Boot的信息学科平台系统开发指南
  • 将 IBM WatsonX 数据与 Milvus 结合使用,构建用于知识检索的智能 Slack 机器人
  • 鸿蒙生态崛起:开发者机遇与挑战并存
  • 【书籍推荐】使用 MATLAB 算法进行合成孔径雷达信号处理【附MATLAB代码】
  • 整数大小比较c++
  • Win11GBK, idea2024.2.4, 使用Gradle8.8本地安装构建,不使用包装器, 解决utf-8乱码问题, 笔记241028
  • SpringBoot项目如何设置定时任务总开关
  • 视频Qoe测量学习笔记(一)
  • java中checkbox(只为记录,ai生成)
  • C++日期和时间库
  • Java 数据结构及其在日常业务中的应用!
  • 【代码随想录Day57】图论Part08
  • Rust语言有哪些数据类型?
  • linux super键是什么_linux终端的快捷命令汇总
  • Linux上本地部署KubeSphere与cpolar实现远程管理和监控集群
  • 在centos中安装cmake
  • JVM 类加载机制详解