mysql 管理员权限恢复 工具_04: 用户授权及撤销 、 数据备份与恢复 、 MySQL管理工具...

day04

一 、管理root用户密码

1.1 修改密码

1.2 恢复密码

二、用户授权与权限撤销

2.1 授权

2.2 撤销权限

三、安装图形管理工具

四 数据备份与恢复 ----- 完全备份与恢复

4.1 完全备份

4.2 完全恢复

++++++++++++++++++++++++++++++++++

一 、管理root用户密码(*操作系统管理员有权限管理)

1.1 修改本机登录密码

#mysqladmin -hlocalhost -uroot -p password "新密码"

必须知道正确旧密码新密码才能设置成功

1.2 恢复本机登录密码

#vim /etc/my.cnf

[mysqld]

skip-grant-tables

#validate_password_policy=0

#validate_password_length=6

...

:wq

#systemctl stop mysqld

#systemctl start mysqld

#mysql

mysql> desc mysql.user;

authentication_string

mysql> select host,user,authentication_string from mysql.user;

mysql> update mysql.user set authentication_string=password("123456")

where host="localhost" and user="root";

mysql> flush privileges;

mysql> quit;

#vim /etc/my.cnf

[mysqld]

#skip-grant-tables

validate_password_policy=0

validate_password_length=6

...

:wq

#systemctl stop mysqld

#systemctl start mysqld

#mysql -uroot -p123456

mysql>

+++++++++++++++++++++++++++++++++++++

二、用户授权与权限撤销

2.1 授权 (在数据库服务器上添加新的连接用户)

授权命令语法格式

mysql> grant 权限列表 on 库名 to 用户名@"客户端地址" identified by "密码" with grant option;

权限列表:

all

select ,insert ,update(字段名)

usage

库名:

.

库名.*

库名.表名

用户名 : 连接数据库服务器时使用的名字授权时自定义即可要有标识

客户端地址:

%

192.168.4.12

192.168.4.%

pc100.tedu.cn

%.tedu.cn

localhost

identified by "密码" 登录密码

with grant option 有授权权限 (可选项)

例子1

grant all on . to root@"%" identified by "654321" with grant option;

在客户端测试授权:

ping -c 2 192.168.4.51

1 检查是否有命令行连接命令 #which mysql

#yum -y install mariadb

2 连接数据库服务器

#mysql -h数据库服务器ip地址 -u用户名 -p密码

#mysql -h192.168.4.51 -uroot -p654321

mysq> select @@hostname;

mysql> select user();

mysql> show grants;

mysql> grant all on bbsdb.* to bbsuser@"192.168.4.53"

-> identified by "654321";

服务器端显示当前运行的程序访问用户的信息?

mysql> show processlist ;

在53主机测试授权?

#mysql -h192.168.4.51 -ubbsuser -p654321

mysql> show grants;

++++++++++++++++++++++++++++++++++

mysql 授权库 存储的是授权信息,

使用不同的表存储不同的授权权限。

user 存储授权用户已有的授权用户

db 存储授权用户对库的访问权限

tables_priv 存储授权用户对表的访问权限

columns_priv 存储授权用户对表中字段的访问权限

show grants for 用户名@“客户端地址”;

++++++++++++++++++++++++++++++++++

2.2 撤销权限(数据库服务器上执行)

a 查看已有的授权用户

select user,host from mysql.user;

b 查看已有的授权用户访问权

show grants for 用户名@"客户端地址";

c 撤销用户访问权限

revoke 权限 on 库名 from 用户名@"客户端地址";

revoke delete,update on bbsdb.from bbsuser@"192.168.4.53";

select from mysql.db where user="bbsuser"\G;

update mysql.db set Delete_priv="Y" where user="bbsuser" and host="192.168.4.53";

flush privileges;

revoke grant option on . from root@'%';

revoke all on . from 'root'@'%';

show grants for root@'%';

删除添加的授权用户?

drop user 用户名@"客户端地址";

授权用户登录服务器后修改自己的登录密码?

SET PASSWORD=PASSWORD("新密码");

管理员修改授权用户的登录密码?

SET PASSWORD

FOR 用户名@"客户端地址"=PASSWORD("新密码");

+++++++++++++++++++++++++++++++++

查看服务器上已有的授权用户有哪些?

显示一下已有授权用户的访问权限?

修改某个授权用户的登录密码位777777 并在客户端测试

某个授权登录后修改自己的登录密码为666666 并在客户端测试

撤销某个授权用户对 库中所有表的 删除记录和更新记录的权限。并在客户端测试。

撤销某个用户的所有访问权限。并在客户端测试

删除所有的授权用户只允许数据库管理员在本机登录。并在客户端测试。

授权tom用户可以在本机登录 密码为654321 对student库有完全权限。并有授权权限,并测试授权。

+++++++++++++++++++++++++++++++++++++++

三、安装图形管理工具phpmyadmin(安装数据库服务器上)

1 rpm -q httpd php php-mysql

2 yum -y install httpd php php-mysql

3 systemctl start httpd ; systemctl enable httpd

4 tar -zxf phpMyAdmin-2.11.11-all-languages.tar.gz -C /var/www/html/

5 cd /var/www/html/

6 mv phpMyAdmin-2.11.11-all-languages phpmyadmin

7 chown -R apache:apache phpmyadmin/

8 cd phpmyadmin/

9 cp config.sample.inc.php config.inc.php

10 sed -n '17p;31p' config.inc.php

$cfg['blowfish_secret'] = 'plj123';

$cfg['Servers'][$i]['host'] = 'localhost';

11 mysql -uroot -p123456

mysql> grant all on gamedb.* to gameuser@"localhost" identified by "123456";

+++++++++++++++++++++++++++++++++++++++++++

四 数据备份与恢复 ----- 完全备份与恢复

4.1 数据备份的目的?使用备份恢复数据。

4.2 数据备份方式?物理备份 和逻辑备份

物理备份:直接拷贝库或表对应的文件。

cp -r /var/lib/mysql/mysql /opt/mysql.bak

tar -zcvf /opt/mysql.tar.gz /var/lib/mysql/mysql/*

cp /opt/mysql.bak /var/lib/mysql/mysql

chown -R mysql:mysql /var/lib/mysql/mysql

systemctl restart mysqld

有局限性: myisam 跨平台性查

数据量备份恢复浪费时间

逻辑备份:执行备份时,根据已有的数据,生成对应的sql命令,把sql保存到指定的文件里。恢复时执行备份文件里的sql命令,就把数据写回到数据库里了。

4.3 数据备份策略? 完全备份 差异备份 增量备份

完全备份:备份所有数据

备份一台数据库服务器上所有数据

备份某一个数据库的所有数据

备份某一张表数据库的所有数据

差异备份:备份自完全备份后,所有新产生的数据。

增量备份:备份自上一次备份后,所有新产生的数据。

执行数据备份操作的手段:

使用crond任务 执行 备份脚本(shell / python)

备份数据时考虑的事情:

周期 时间 策略 文件命名 存储空间

工作中使用的备份策略?

完全备份+差异备份

完全备份+增量备份

周期 时间 策略 t1 文件名 数据

6:00

1 完全 10 1.sql 10

2 差异 3 2.sql 3

3 6 3.sql 9

4 5 4.sql 14

5 1 5.sql 15

6 2 6.sql 17

7 差异 3 7.sql 20

周期 时间 策略 t1 文件名 数据

6:00

1 完全 10 1.sql 10

2 增量 3 2.sql 3

3 6 3.sql 6

4 5 4.sql 5

5 1 5.sql 1

6 2 6.sql 2

7 增量 3 7.sql 3

++++++++++++++++++++++++++++++++++++++

4.1 完全备份

[root@host50 ~ ]#

mysqldump -hlocalhost -uroot -p123456 库名 > 目录名/文件名.sql

库名的表示方式:

备份一台数据库服务器上所有数据 --all-databases

备份某一个数据库的所有数据 库名 gamedb

备份某一张表数据库的所有数据 库名 表名 studentdb user

把多个库的所有数据备份到一个备份文件里 -B 库名1 库名2 库名n

4.2 完全恢复

[root@host50 ~ ]#

mysql -hlocalhost -uroot -p123456 库名 < 目录名/文件名.sql

+++++++++++++++++++++++++++++++++++++++++++++

#mkdir /bakdb

#vim /bakdb/allstudb.sh

#!/bin/bash

day=$(date +%F)

if [ ! -e /bakdir ];then

mkdir /bakdir

fi

mysqldump -uroot -p123456 db4 > /bakdir/$day-db4.sql

:wq

#chmod +x /bakdb/allstudb.sh

#/bakdb/allstudb.sh

#ls /bakdir

#crontab -e

00 06 1 /bakdb/allstudb.sh &> /dev/null

:wq

++++++++++++++++++++++++++++++++++++

完整备份的缺点?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值