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官方repo
:https://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;