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

Linux-MariaDB数据库的备份与初始化

Linux-MariaDB数据库的备份与初始化

  • 缘起
  • 数据库备份
  • 数据库用户查询
  • 数据库新建用户
  • 数据库权限回收
  • 数据库更新密码
  • 数据库root密码重置

缘起

Linux系统下我们比较常用的数据库软件是开源又免费的MySQL。MariaDB是MySQL的一个分支,采用GPL授权许可,完全兼容MySQL的API与命令行。虽然MariaDB公司即将倒闭,但这不影响它的性能超越MySQL的事实。

数据库备份

使用mysqldump命令。这个命令可以帮助导出一个含有数据库结构与数据的SQL脚本,导出脚本的功能大概是:创建数据库判断语句-删除表-创建表-锁表-禁用索引-插入数据-启用索引-解锁表
要导出所有数据,可以这么用:

mysqldump -uroot -p --host=127.0.0.1 --port=3306 --all-databases >/tmp/full.sql

*其中host 127.0.0.1指数据库所在服务器,需要改为自己在用的。Port是默认的。
*上方命令需要使用者持有root账号密码,如果没有,把-u后面的root替换为使用者持有的拥有相关权限的其他账号名即可。
当然,我们可以通过参数选择只导出部分内容。在这里不做展开。

数据库用户查询

MySQL是一个多用户管理的数据库,并通过权限表来控制用户对数据库的访问,权限表默认放在了mysql数据库中,主要的有user,db,table_priv,columns_prov和procs_priv。这里用户信息,哈希加密用户密码,用户权限等是在user表中。下方的命令可以简单明了的查看user表的主要信息。

use mysql;
select host,user,password from user order by host desc,user desc;

host为%意味着可以在从任何地址连接到服务器。

数据库新建用户

方法一,使用root账户运行下面代码,需要注意的是这种方式创建的用户默认没有任何权限。参考下面的数据库赋权部分分配权限。

create user 'User1'@'%' identified by 'password1';

方法二,使用root账户直接在user表新加。

use mysql;#等同于grant all privileges on *.* to " User1 "@"%" identified by ' password1' with grant option;insert into user values("%","User1",password("password1"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y");
flush privileges;#等同于grant select,insert on database1.datatable1 to "User2"@"0.0.0.0" with grant option;insert into user (host,user) values("0.0.0.0","User2");
insert into db values("0.0.0.0","User2","Y","Y","Y","Y","Y","Y","N","N","N","N")
flush privileges;

#数据库赋权
使用root账号,运行下面命令,一般权限为以下顺序:select、update、delete、insert、alter、drop、create等

grant all privileges on databse1.* to User1@'%';
#with grant option指可以将update权限传递给其他用户
grant all privileges on databse1.* to User1@'%' with grant option;
#用identified by 'password1'指同时重置密码为password1
grant all privileges on databse1.* to User1@'%' identified by 'password1';
flush privileges;

数据库权限回收

Revoke命令用来回收权限。以下是一些示例

revoke all on *.* from "User3"@"localhost";
revoke all on database1.datatable1 from "User3"@"localhost";
revoke select on *.* from "User3"@"localhost";

数据库更新密码

本质上也是更新User表内容

update user set password=password('newpassword') where user='User1';
flush privileges;

#数据库删除用户
本质上也是更新User表

drop user 'User1'@'localhost'
delete from user where user='User1';
flush privileges;

#数据库复原

source /tmp/full.sql

数据库root密码重置

在全新的安装有MariaDB的机器上,如果我们丢失了root密码,可以在配置文件里做一点调整。
首先,停止MariaDB服务

service mariadb stop

#用vim命令编辑安装目录下配置文件my.cnf,插入一行” skip-grant-tables”,这样我们就可以跳过数据库权限验证
启动服务

service mariadb restart

登陆数据库

mysql -u root

将数据库切换至mysql库

use mysql;

修改密码

update user set password=password('newpasswd') where user='root';

刷新MySQL权限相关的表

flush privileges;

退出

quit;

将之前插入的配置语句注释掉,重启服务,即可使用新密码登陆

http://www.lryc.cn/news/97721.html

相关文章:

  • springboot-redis使用fastjson2
  • SOC FPGA之HPS模型设计(二)
  • Go基础—反射,性能和灵活性的双刃剑
  • MATLAB与ROS联合仿真(慕羽☆)全套开源资料索引
  • 三、深入浅出WPF之控件与布局
  • 社群积分运营策略:增加用户忠诚度
  • 推荐用于学习RN原生模块开发的开源库—react-native-ble-manager
  • MySQL中锁的简介——全局锁
  • RocketMQ集群4.9.2升级4.9.6版本
  • 具身智能controller---RT-1(Robotics Transformer)(上---方法介绍)
  • 视频内存过大如何压缩变小?这个压缩方法了解一下
  • 【Ansible】自动化部署工具-----Ansible
  • Ubuntu下安装Node.js;npm
  • 设计模式-模版方法模式
  • Linux 学习记录59(ARM篇)
  • TypeScript -- 函数
  • 网页开发基础——HTML
  • C# 继承,封装,多态等知识点
  • 决策树概述
  • 青枫壁纸小程序V1.4.0(后端SpringBoot)
  • Error: unknown flag: --export 【k8s,kubernets报错】
  • 进入linux系统中修改网段-ip
  • 通过REST API接口上传Nexus仓库
  • Docker镜像端口映射简介及配置指南
  • Excel双向柱状图的绘制
  • Linux6.17 Docker 安全及日志管理
  • 学好Elasticsearch系列-索引的CRUD
  • Python - OpenCV机器视觉库的简单使用经验
  • 【计算机网络 01】说在前面 信息服务 因特网 ISP RFC技术文档 边缘与核心 交换方式 定义与分类 网络性能指标 计算机网络体系结构 章节小结
  • POI信息点的diPointX、diPointY转化成经纬度