- mysql 基础
- MySQL 8.0 二进制安装
- MySQL 5.7 二进制安装
- MySQL 5.7 用户权限
- MySQL 5.7 用户密码管理
- MySQL 5.7 用户角色管理
- MySQL 5.7 备份恢复
1.0 MySQL 8.0 二进制安装
1.1 MySQL 8.0 二进制包下载
1 | 第一步: 官方网站: https://www.mysql.com/ |
1.2 MySQL 8.0 安装
1.2.1 安装前准备
1 | # echo -e "10.10.10.150 mysql" >> /etc/hosts |
1.2.2 环境变量配置
1 | # vim ~/.bash_profile |
1.2.3 创建授权用户
1 | # groupadd mysql |
1.2.4 主配置文件
1 | # cat /etc/my.cnf |
1.2.5 初始化
1 | # yum -y install mariadb-libs libaio # 初始化之前解决依赖包问题 |
1.3 配置 systemd 启停
1 | # cat /usr/lib/systemd/system/mysqld.service |
1.4 数据库密码修改
1 | # mysql -uroot -p |
1.5 允许 root 远程登录
1 | # mysql -uroot -p |
2.0 MySQL 5.7 二进制安装
2.1 MySQL 5.7 二进制包下载
1 | 第一步: 官方网站: https://www.mysql.com/ |
2.2 MySQL 5.7 安装
2.2.1 安装前准备
1 | # echo -e "10.10.10.150 mysql" >> /etc/hosts |
2.2.2 环境变量配置
1 | # vim ~/.bash_profile |
2.2.3 创建授权用户
1 | # groupadd mysql |
2.2.4 主配置文件
1 | # cat /mysql/data/3306/my.cnf |
2.2.5 初始化
1 | # ln -sf /mysql/data/3306/my.cnf /etc/my.cnf |
2.3 配置 systemd 启停
1 | # cat /usr/lib/systemd/system/mysqld.service |
2.4 数据库密码修改
1 | # mysql -uroot -p |
2.5 允许 root 远程登录
1 | # mysql -uroot -p |
3.0 MySQL 5.7 用户权限
- 基于 mysql 5.7 的数据库用户权限
3.1 常规查询
1 | mysql> select CURRENT_USER; # 查询当前连接的是什么用户 |
3.2 创建用户
1 | // 后缀不一样,用户不一样 如: 'localhost' 或 '%' |
3.3 创建有授权的用户
1 | // 授权所有的 库.表 到 user02 用户的 % 所有主机密码是 ink8s.com 并且可以将权限授权给别的用户 |
- grant 授权范围
1
2
3
4
5
6
7
8
9
10
11
12mysql> grant all privileges on *.* to 'user01'@'localhost' identified by 'Aa123456'; # 如果有密码,可以不加密码; 如果没有密码可以加上密码
mysql> flush privileges; # 需要刷新权限列表使其生效
// grant 授权范围
on *.* mysql.user
on 库名.* mysql.db
on 库名.表名 mysql.`tables_priv`
on 库名.表名.列名 mysql.`columns_priv`
on 库名.存储过程/函数 mysql.`procs_priv`
mysql> grant all privileges on *.* to 'user02'@'localhost'; # 授权'user02'@'localhost'用户所有数据库权限
3.4 授权普通用户
1 | 1) 授权普通用户,具有查询、插入、更新、删除user这个数据库所有表数据的权限 |
3.5 授权开发人员
- 创建、修改、删除 -表/索引/视图/存储过程/函数等权限
3.5.1 创建、修改、删除 表
1 | mysql> create user dev01@'%' identified by 'ink8s.com'; # 创建用户dev01@'%' |
3.5.2 操作mysql外键的权限
1 | mysql> grant references on ink8sdb.* to dev01@'%'; |
3.5.3 创建mysql临时表的权限
1 | mysql> grant create temporary tables on ink8sdb.* to dev01@'%'; |
3.5.4 操作mysql索引的权限
1 | mysql> grant index on ink8sdb.* to dev01@'%'; |
3.5.5 操作mysql视图的权限
1 | mysql> grant create view,show view on ink8sdb.* to dev01@'%'; |
3.5.6 操作mysql存储过程/函数的权限
1 | mysql> grant create routine,alter routine,execute on ink8sdb.* to dev01@'%'; |
3.6 用户对数据库管理
3.6.1 普通dba用户可以管理某一个数据库
1 | mysql> grant all privileges on ink8sdb.* to dba01@'localhost' identified by 'ink8s.com'; |
3.6.2 授权dba用户可以管理所有数据库
1 | mysql> grant all privileges on *.* to dba02@'localhost' identified by 'ink8s.com'; |
3.6.3 授权针对单个表
1 | mysql> grant select,insert,update,delete on ink8sdb.tab01 to dev01@'%'; |
3.6.4 授权针对存储过程和函数
1 | mysql> grant execute on procedure 库名.存储过程命名 to dev01@'%'; |
3.7 权限回收
- 回收权限不会删除用户
3.7.1 回收单个表
1 | mysql> revoke select,insert,update,delete on ink8sdb.tab01 from dev01@'%'; |
3.7.2 回收单个数据库
1 | // 回收单个数据库 |
3.8 删除用户及重命名
1 | // 删除用户无需刷新权限 |
4.0 MySQL 5.7 用户密码管理
4.1 修改普通用户的密码
1 | // A. 修改mysq.user表; root用户登录 |
4.2 密码过期问题
1 | // 密码过期问题; 5.7.11有一个360密码过期问题; 5.7.12之后又改为密码不过期 |
4.3 用户锁定与解锁
1 | mysql> alter user 'user01'@'localhost' account lock; # 锁定这个用户 |
4.4 root用户密码丢失解决
1 | # systemctl stop mysqld |
5.0 MySQL 5.7 用户角色管理
1 | // mysql 5.7 proxies_priv(模拟角色),可以实现用户组的管理 |
5.1 启用 proxy
1 | mysql> show variables like 'proxy%'; |
5.2 用户角色案例
1 | // 1. 创建用户 |
6.0 MySQL 5.7 备份与恢复
6.1 数据库备份与恢复理论
6.1.1 备份哪些文件
1 | 1. 数据文件 |
6.1.2 备份的分类
1 | // 按照备份后产生的副本文件是否可编辑,可分为逻辑备份、物理备份 |
6.1.3 MySQL 备份工具简介
1 | 1. mysqldump(单线程 5.7之前) ; mysqlpump(多线程 5.7之后) |
6.2 物理备份
6.2.1 备份数据库目录
1 | # mkdir /backup_mysql # 创建备份目录 |
6.2.2 删除数据库目录
1 | # rm -rf /mysql/ |
6.2.3 恢复数据库目录
1 | # cd /backup_mysql |
6.2.4 登录验证
1 | # mysql -uroot -p |
6.3 逻辑备份
6.3.1 mysqldump 备份恢复
6.3.1.1 mysqldump 备份恢复单个库
1 | // 备份单个库中 库结构、表结构、表数据: |
6.3.1.2 mysqldump 备份恢复多个库
1 | // 备份多个库中 库结构、表结构、表数据: |
6.3.1.3 mysqldump 备份恢复所有库
1 | // 备份所有库中 库结构、表结构、表数据: |
6.3.1.4 mysqldump 备份恢复某个库的某些表数据
1 | // 备份nacos库的2个表数据 |
6.3.1.5 mysqldump 备份恢复某个库所有表结构
1 | // 备份nacos库的所有表结构,不到表数据 |
- 本文作者: [email protected]
- 本文链接: https://www.ink8s.com/2023/03/18/mysql-基础/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!