Mysql(四)-用户授权
#############################################################################################一、数据库管理员密码的设置:
1、修改数据库管理员本机登录密码(操作系统管理员有权限修改)
mysqladmin -hlocalhost -uroot -p password "新密码"
2、恢复数据库管理员密码(操作系统管理员有权限修改)
#systemctlstopmysqld
#vim /etc/my.cnf
skip-grant-tables //跳过密码验证
#systemctlstartmysqld
#mysql
mysql> updatemysql.user setauthentication_string=password("新密码") whereuser="root"and host="localhost";
mysql> flushprivileges;
mysql> quit;
#vim /etc/my.cnf
#skip-grant-tables //将跳过验证注释
#systemctlstopmysqld
#systemctlstartmysqld
#mysql-uroot-p新密码 //登陆验证密码是否设置成功
mysql>
+++++++++++++++++++++++++++++++++++++++
二 、用户授权:就在数据库服务器添加新的连接用户。
用户授权:
命令:
mysql>grant 权限列表on库名 to用户名@"客户端地址"> //with grant option 授权的用户具有授权权限。
权限的表示方式:
all、 usage、select,update(name,age),delete
库名的表示方式:
库名.表名
库名.
.*
用户名:
自定义
客户端地址表示方式:
192.168.4.117 //表示单个主机
192.168.2.% //表示192.168.2.0网段的所有主机
identified by "密码" //登录密码
withgrant option //可以有授权权限可选项
####################################################################
权限撤销 :
命令:
mysql> revoke权限列表on库名from用户名@"客户端地址";
##################################################################
删除授权用户:dropuser用户名@"客户端地址";
##################################################################
查看授权用户的权限showgrantsfor用户@”客户端地址“;
授权信息存储位置:在授权库mysql 下的表里。(不同存储不同的授权信息)
mysql>usemysql;
mysql>showtables;
user 已有授权用户信息select user,host frommysql.user;
db 授权用户对库的访问权限
tables_priv记录授权用户对表的访问权限
columns_priv记录授权用户对表中字段的访问权限。
########################################################################
举例:
允许在192.168.4.254主机上使用管理员用户连接数据库服务器。
mysql>grantallon. toroot@"192.168.4.254" > 允许从网站服务器上使用bbsuser用户连接密码是123456只对bbsdb库下的所有表有完全权限,没有授权权限。
grantallon bbsdb.*tobbsuser@"192.168.4.30" > 运行使用admin用户在数据库服务器本机登录 密码123456只有查询表记录的权限。
grantselecton. toadmin@"localhost"> mysql> revoke权限列表on库名from用户名@"客户端地址";
撤销root在254主机登录的授权权限
revokegrantoptionon.fromroot@"192.168.4.254";
撤销root在254主机登录的删除记录和修改记录的权限
revokedelete,updateon.fromroot@"192.168.4.254";
撤销root在254主机登录的所有权限
revokeallon.fromroot@"192.168.4.254";
#############################################################################
通过修改表记录的方式撤销用户的权限。
1 修改在对应表中的记录信息
2fulsh privileges;
##########################################################################
授权用户登录服务器后,修登录密码;
mysql> set password=password("密码");
管理员重置授权用户的登录密码
mysql> set password for用户@"客户端地址"=password("密码");
########################################################################
客户端测试授权:
#whichmysql
#rpm-qmariadb
#mysql-h数据库服务器的IP地址-u用户名-p密码
mysql>select@@hostname;
mysql>selectuser();
mysql>showgrants;
############################################################################
三、数据备份与恢复(完全备份和完全恢复)
备份方式:
1、物理备份: 直接拷贝库或表对应的文件(Myisam)
cp-r/var/lib/mysql/mysql /mysql.bak
tar -zcvf /mysql.tar.gz /var/lib/mysql/mysql/*
cp-r /mysql.bak/var/lib/mysql/mysql
chown-Rmysql:mysql /var/lib/mysql/mysql
########################################################
2、逻辑备份: 执行备份时,根据已有的库和表生成对应sql命令,把生成的sql命令存储到指定的备份文件里。
备份策略:
完全备份: 备份所有数据(表 、 库 、 服务器)
差异备份:备份自完全备份后所有新产生 (备份新产生的数据)
增量备份:备份自上一次备份后,所有新产生。(备份新产生的数据)
备份数据库要考虑的问题:
备份频率 备份时间 备份策略 存储空间 备份文件的命名(一般都以 名.sql 这样的格式)
备份策略使用方式:
完全+增量(工作环境中使用较多)
完全+差异
执行数据备份的方式:周期性计划任务crond执行 备份脚本
########################################################################
完全备份数据mysqldump
#mysqldump -uroot -pabc123 库名 > 目录名/名.sql
库名的表示方式:
--all-databases 备份数据库服务器的所有数据
库名 备份一个库里的所有数据
库表 备份一个表的所有数据
-B库名1库名1 库名N 一起备份多个库的所有数据
#########################################################################
完全恢复数据
#mysql-uroot-pabc123 studb< 目录名/名.sql //studb库应提前创建
#########################################################################
备份脚本:
mkdir/srcriptdir
vim/srcriptdir/userdbbakall.sh
#!/bin/bash
day=date +%F
if[ ! -e/bakdir];then
mkdir/bakdir
fi
mysqldump-uroot-pabc123userdb> /bakdir/userdb-$day.sql
:wq
#chmod +x/srcriptdir/userdbbakall.sh
#/srcriptdir/userdbbakall.sh
#ls/bakdir/.sql
#vim /bakdir/.sql
#crontab-e
3023 1 /srcriptdir/userdbbakall.sh&> /dev/null
:wq
页:
[1]