04: 用户授权及撤销 、 数据备份与恢复 、 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";

12 client 254 :
#firefox http://192.168.4.51/phpmyadmin

+++++++++++++++++++++++++++++++++++++++++++ 
四 数据备份与恢复 ----- 完全备份与恢复
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
++++++++++++++++++++++++++++++++++++
完整备份的缺点?



     本文转自sweak_h 51CTO博客,原文链接:http://blog.51cto.com/13478354/2064356,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章