缘起
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;
退出文章来源:https://www.toymoban.com/news/detail-610443.html
quit;
将之前插入的配置语句注释掉,重启服务,即可使用新密码登陆文章来源地址https://www.toymoban.com/news/detail-610443.html
到了这里,关于Linux-MariaDB数据库的备份与初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!