Centos7用yum安装MySQL

Centos7用yum安装MySQL5.7

参考:https://blog.csdn.net/qq_45732782/article/details/117221897
环境声明:
OS Version Centos7.9 x64
MySQL Version 5.7.43


检查机器上有无MySQL

# 查看是否已经有mysql:
rpm -qa|grep mysql

#如果linux上已经安装过mysql删除mysql:
yum remove mysql*   
# 或
rpm -e mysql*

检查有无mriadb

# 查看mariadb包
rpm -qa|grep -i mariadb

在这里插入图片描述

# 卸载mariadb相关包
## -e 卸载软件包
## -v 显示过程详情
## -h 安装软件包时列出标记
## --nodeps 不检查依赖
rpm -evh mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

下载repo并安装MySQL5.7

mysql5.7的官方repo:https://repo.mysql.com/

# 安装repo
yum install -y https://repo.mysql.com/mysql57-community-release-el7.rpm

# 防止提示公钥尚未安装
sed -i "s/gpgcheck=1/gpgcheck=0/" /etc/yum.repos.d/mysql*

# 安装mysql-server社区版
yum -y install mysql-community-server

# 设置mysql开机自启服务并现在启动mysqld服务
systemctl enable --now mysqld

# 查看启动的服务有无报错
systemctl status mysqld

初始化数据库之前修改my.cnf----配置持久化键(persistence key)

MySQL5.7初始化数据库之前配置好这些变量值,初始化数据库之后可能无法修改这个值。
https://blog.csdn.net/omaidb/article/details/147195950


MYSQL初始化

生成MYSQL默认的数据文件初始化密码
在 MySQL 数据目录中创建系统表数据文件,并为 mysql的root 用户生成一个随机密码

# 初始化数据库
## --initialize 初始化MySQL服务器的数据目录。
### 它会创建必要的系统表来管理数据库,并设置初始授权表。
## --user=mysql 指定mysql用户运行
### 不指定--user,将以当前用户执行,数据文件会有属主权限问题
## --console:将日志信息输出到控制台。
mysqld --initialize --user=mysql --console

在这里插入图片描述

# 查看默认密码
grep 'temporary password' /var/log/mysqld.log

指定初始化密码
-- 新建一个文本/tmp/tmp.sql
ALTER USER 'root' @'localhost' IDENTIFIED BY '指定的初始化密码';

指定初始化sql脚本,实现指定初始化密码。

# 初始化数据库
## --initialize:初始化 MySQL 数据库。
## --console:将日志信息输出到控制台。
## --init-file:执行指定的 SQL 脚本。
mysqld --initialize --console =/tmp/tmp.sql

重新初始化—生产环境禁止执行

https://blog.csdn.net/omaidb/article/details/106481406
https://www.cnblogs.com/jmxx/p/16268434.html

# 先停止mysqld服务
systemctl stop mysqld

# 删除原来的数据文件
rm -rf /var/lib/mysql/*

# 清空原日志
> /var/log/mysqld.log

# 执行mysql初始化
## 在 MySQL 数据目录中创建系统表和数据文件,并为 root 用户生成一个随机密码。
mysqld --initialize --user=mysql --console

# 查看默认密码
grep 'temporary password' /var/log/mysqld.log

# 重启mysqld服务
systemctl restart mysqld

# 如果重启报错,一般都是目录权限的问题
## 以root执行来mysql初始化而非mysql用户
## 一般是/var/lib/mysql/auto.cnf权限的问题
ls -alh /var/lib/mysql/auto.cnf

# 查看权限--正常的
ls -ld /var/lib/mysql

# 重新赋予datadir 属主和属组
## 给予权限后重启正常了
chown -R mysql:mysql /var/lib/mysql

会重新生成MYSQL默认的数据文件初始化密码


查看MySQL的初始化密码

# 查看MySQL的初始化密码
grep "password" /var/log/mysqld.log
grep 'temporary password' /var/log/mysql/mysqld.log
# 或
cat ~/.mysql_secret

在这里插入图片描述


修改mysql初始化密码


修改mysql初始化密码–方法1—不建议

这种方法history会留下明文密码,不建议使用

# 方法1: 修改初始化密码
## -u后面没有空格,紧跟用户名root
## -p后面没有空格,紧跟密码
mysqladmin -uroot -p初始化密码 password 新密码

在这里插入图片描述


修改mysql初始化密码–方法2

在这里插入图片描述

# root登录数据库
mysql -uroot -p
## 提示输入密码,输入刚才查询到的mysql初始密码即可

# 修改密码
## 修改完后是保存在内存里,并未落盘
mysql> update mysql.user set password=password('新密码') where user='root';

在这里插入图片描述

# 使用ALTER修改初始化密码
## 新密码要满足大小写数字标点
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# 应用权限
## 将内存中的配置保存到磁盘中
mysql> flush privileges;

Centos7用yum安装MySql8

https://www.jianshu.com/p/224a891932d8
Mysql官方repohttps://repo.mysql.com/

# 安装mysql8的repo
yum install -y https://repo.mysql.com/mysql80-community-release-el7.rpm

在这里插入图片描述

# 列出repo
yum repolist

在这里插入图片描述

# 安装服务端
yum install -y mysql-server

# 设置开机自启动
systemctl enable --now mysqld.service

# 查看服务状态
systemctl status mysqld

在这里插入图片描述


安装msyql-shell和mysql-router

  • MySQL Shell是一个交互式命令行工具,用于连接到MySQL服务器并执行SQL语句、管理实例等数据库管理操作;

  • MySQL Router(可选安装)是一个中间件工具,用于分流负载均衡多个MySQL服务器,并提供高可用性高性能的应用程序运行环境。

# 安装mysql-shell
yum install -y mysql-shell

# 安装mysql-router
yum install -y mysql-router

初始化数据库之前修改my.cnf----配置持久化键(persistence key)

MySQL8初始化数据库之前配置好这些变量值,初始化数据库之后可能无法修改这个值。
https://blog.csdn.net/omaidb/article/details/147195861


MYSQL初始化

# MySQL数据库初始化
## --initialize 初始化MySQL服务器的数据目录。
### 它会创建必要的系统表来管理数据库,并设置初始授权表。
## --user=mysql 指定mysql用户运行
### 不指定--user,将以当前用户执行,数据文件会有属主权限问题
mysqld --initalize --user=mysql

# 查看默认密码
grep 'temporary password' /var/log/mysqld.log
grep 'temporary password' /var/log/mysql/mysqld.log

在这里插入图片描述


修改初始化密码

# 使用初始化密码登录mysql
mysql -uroot -p
# 输入初始化密码后登录
-- 修改初始化密码
-- 第一次修改必须要设置成强密码:4种字符以上
-- 修改密码并解除过期限制
ALTER USER 'root'@'localhost' IDENTIFIED BY 'IBM_apple_12.' PASSWORD EXPIRE NEVER;
// 重载权限表
FLUSH PRIVILEGES;

修改为简单密码策略

改完初始化密码之后,才允许修改密码策略简单
在这里插入图片描述

# 修改成强密码后才可以调低密码强度为0
set global validate_password.policy=0;
-- 设置密码策略为 LOW(允许简单密码)
SET GLOBAL validate_password.policy = LOW;

-- 查看当前密码策略参数
SHOW VARIABLES LIKE 'validate_password%';

// 切换数据库
use mysql;

// 把原密码置空
update user set authentication_string='' where  user = 'root';

// 修改root账号的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<简单密码>';

// 修改root账户远程登录权限,使用外网可以访问
// %表示允许远程登录,localhost表示仅允许本地登录
update user set host = '%' where user = 'root';

// 刷新权限
FLUSH PRIVILEGES;

修改root账户远程登录权限

// 进入mysql库
use mysql;

// 修改root账号的密码
ALTER USER 'root' @'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';

// 修改root账户远程登录权限
// ## %表示允许远程登录,localhost表示仅允许本地登录
update user set host = '%' where user = 'root';

// 重载权限表
flush privileges;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值