Centos7离线安装Mysql5.7

Centos7离线安装Mysql5.7

卸载掉原有mysql

  1. 查看该操作系统上是否已经安装了mysql数据库
rpm -qa | grep mysql
  1. 有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉
rpm -e mysql  // 普通删除模式
rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!!

下载mysql5.7 rpm源

  1. 由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件
mkdir /home/software
cd /home/software
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
  1. 安装下载好的rpm包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
拓展rpm知识:
-i	安装软件包		-e	删除软件包		-U	升级软件包

-v			显示安装过程
-h			显示进度

-q			查询某个包是否已经安装,例:rpm -q mysql
-qa			查询所有被安装的rpm package
-qf			查询某个文件属于哪个包
-ql			查询某个已安装软件所包含的所有文件
-qpR		查询某个包的依赖关系

安装参数
--force		即使覆盖属于其它包的文件也强制安装
--nodeps	如果该RPM包的安装依赖其它包,即使其它包没装,也强制安装

如遇到问题:

事务概要

================================================================================================================================
安装  3 软件包 (+29 依赖软件包)
升级           (  1 依赖软件包)

总计:217 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-libs-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 检索密钥


源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。


 失败的软件包是:mysql-community-libs-5.7.37-1.el7.x86_64
 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

运行下面命令

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

使用yum命令安装

注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本

cd /etc/yum.repos.d/
#1.安装命令
yum install mysql-server 
#2.启动msyql
systemctl start mysqld
#3.获取安装时的临时密码(在第一次登录时就是用这个密码)
grep "password" /var/log/mysqld.log
#登录mysql
mysql -u root -p

登录成功后的操作

  1. 注意:这里会进行密码强度校验(密码设置时必须包含大小写字母、特殊符号、数字,并且长度大于8位)
  2. 如不满足以上条件则会报错,如下图:
    密码策略问题异常信息:
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  3. 解决办法:
1、查看 mysql 初始的密码策略,
输入语句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 进行查看,

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,

3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
输入设值语句 “ set global validate_password_length=6; ” 进行设值,

4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
输入修改语句 “ ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ” 可以看到修改成功,表示密码策略修改成功了!!!

5、注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,
只要设置密码的长度小于 3 ,都将自动设值为 46、关于 mysql 密码策略相关参数;
1)、validate_password_length  固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
  1. 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '@abcd123456'; 
  1. 开启远程控制
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
flush privileges;

创建数据库

  1. 创建用户
CREATE USER 'xx'@'%' IDENTIFIED BY '123456';
  1. 创建数据库
CREATE DATABASE `db1` CHARACTER SET utf8mb4;
  1. 授权:
GRANT ALL ON `db1`.* TO 'xx'@'%' ;

修改数据库存储位置

  1. 首先看下整体的分区使用状况:
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  3.6G   47G    8% /
devtmpfs                 7.5G     0  7.5G    0% /dev
tmpfs                    7.5G     0  7.5G    0% /dev/shm
tmpfs                    7.5G  8.9M  7.5G    1% /run
tmpfs                    7.5G     0  7.5G    0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M   15% /boot
/dev/mapper/centos-home  1.8T  674M  1.8T    1% /home
tmpfs                    1.5G     0  1.5G    0% /run/user/0

找到一个分区比较大的逻辑分区,同时也能看到数据库数据目录存储在哪个分区,已经占用了多少等等数据。
这里对于新手可能不知道数据储存目录属于哪个逻辑分区,可以使用df -h 文件路径 查看

df -h /var/lib/mysql/
  1. 创建新的目录(如果错误没有哪个文件夹就一步一步创建下去)
mkdir /home/data/
  1. mv或cp原始数据库数据目录文件
    这里我用的是cp,为了安全考虑,直接复制一份,如果失败原始数据不会影响,可以快速回滚到之前的目录启动数据
cp -a /var/lib/mysql  /home/data/
  1. 修改配置文件my.cnf
    备份my.cnf
cp /etc/my.cnf /etc/my.cnfbak
#编辑配置文件
vi /etc/my.cnf

修改如下几项( #为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录,也会为了快速回滚。)

[client]
port= 3308 #更改端口号
socket= /home/data/mysql/mysql.sock  

[mysqld]
socket= /home/data/mysql/mysql.sock   
datadir= /home/data/mysql             
  1. 重启mysql
service mysqld stop
service mysqld start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值