############################################################################################# 一、数据库管理员密码的设置:

1、修改数据库管理员本机登录密码(操作系统管理员有权限修改)

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

2、恢复数据库管理员密码(操作系统管理员有权限修改) #systemctl stop mysqld #vim /etc/my.cnf [mysqld] skip-grant-tables //跳过密码验证 #systemctl start mysqld #mysql mysql> update mysql.user set authentication_string=password("新密码") where user="root" and host="localhost"; mysql> flush privileges; mysql> quit;

#vim /etc/my.cnf [mysqld] #skip-grant-tables //将跳过验证注释 #systemctl stop mysqld #systemctl start mysqld #mysql -uroot -p新密码 //登陆验证密码是否设置成功 mysql> +++++++++++++++++++++++++++++++++++++++

二 、用户授权:就在数据库服务器添加新的连接用户。 用户授权:
命令: mysql> grant 权限列表 on 库名 to 用户名@"客户端地址" identified by "密码" [ with grant option]; //with grant option 授权的用户具有授权权限。

权限的表示方式: all 、 usage 、select,update(name,age),delete

库名的表示方式: 库名.表名
库名.*
.

用户名: 自定义

客户端地址表示方式: 192.168.4.117 //表示单个主机 192.168.2.% //表示192.168.2.0网段的所有主机

identified by "密码" //登录密码

with grant option //可以有授权权限 可选项

#################################################################### 权限撤销 : 命令: mysql> revoke 权限列表 on 库名 from 用户名@"客户端地址";

################################################################## 删除授权用户: drop user 用户名@"客户端地址";

################################################################## 查看授权用户的权限 show grants for 用户@”客户端地址“;

授权信息存储位置:在授权库mysql 下的表里。(不同存储不同的授权信息) mysql>use mysql; mysql>show tables; user 已有授权用户信息 select user,host from mysql.user; db 授权用户对库的访问权限 tables_priv 记录授权用户对表的访问权限 columns_priv 记录授权用户对表中字段的访问权限。

########################################################################

举例: 允许在192.168.4.254主机上使用管理员用户连接数据库服务器。 mysql>grant all on . to root@"192.168.4.254" identified by "123456" with grant option;

允许从网站服务器上使用bbsuser用户连接 密码是123456 只对bbsdb库下的所有表有完全权限,没有授权权限。 grant all on bbsdb.* to bbsuser@"192.168.4.30" identified by "123456";

运行使用admin用户在数据库服务器本机登录 密码123456 只有查询表记录的权限。 grant select on . to admin@"localhost" identified by "123456";

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

撤销root在254主机登录的授权权限 revoke grant option on . from root@"192.168.4.254";

撤销root在254主机登录的删除记录和修改记录的权限 revoke delete,update on . from root@"192.168.4.254";

撤销root在254主机登录的所有权限 revoke all on . from root@"192.168.4.254";

#############################################################################

通过修改表记录的方式撤销用户的权限。 1 修改在对应表中的记录信息 2 fulsh privileges;

########################################################################## 授权用户登录服务器后,修登录密码; mysql> set password=password("密码");

管理员重置授权用户的登录密码 mysql> set password for 用户@"客户端地址"=password("密码");

########################################################################

客户端测试授权: #which mysql #rpm -q mariadb #mysql -h数据库服务器的IP地址 -u用户名 -p密码 mysql> select @@hostname; mysql> select user(); mysql> show grants;

############################################################################

三、数据备份与恢复(完全备份和完全恢复) 备份方式: 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 -R mysql: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 -pabc123 userdb > /bakdir/userdb-$day.sql :wq

#chmod +x /srcriptdir/userdbbakall.sh #/srcriptdir/userdbbakall.sh

#ls /bakdir/.sql #vim /bakdir/.sql

#crontab -e 30 23 * * 1 /srcriptdir/userdbbakall.sh &> /dev/null :wq