恢复数据库管理员密码、用户授权、数据备份与恢复
修改数据库管理员密码
# mysqladmin -hlocalhost -uroot -p password "新密
码"
Enter password: 当前登录密码
恢复数据库管理员密码
#vim /etc/my.cnf
[mysqld]
#validate_password_policy=0
#validate_password_length=6
skip-grant-tables
:wq
#systemctl restart mysqld
#mysql
mysql>
update mysql.user set
authentication_string=password("123qqq") where
host="localhost" and user="root";
mysql> flush privileges;
mysql> quit
#vim /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
#skip-grant-tables
:wq
#systemctl restart mysqld
#mysql -uroot -p123qqq
mysql>
用户授权
什么是授权:在数据库上添加新的可以连接的用户
默认数据库管理员root用户在本机登录时,才有授权权限。
授权命令的格式?
grant 权限列表 on 数据名 to 用户名;
grant 权限列表 on 数据名 to 用户名@"客户端地址";
grant 权限列表 on 数据名 to 用户名@"客户端地址"
identified by "密码" ;
grant 权限列表 on 数据名 to 用户名@"客户端地址"
identified by "密码" with grant option;
权限列表的表示方式?
all 所有权限
select,update(name,age)
数据名的表示方式?
*.* 所有库所有表
库名.* 一个库
库名.表名 一个表
用户名: 授权时自定义要有标识性,是用户登录是使用的名字
客户端地址的表示方式?
% 所有地址
192.168.2.% 网段
%.tarena.com 区域
pc101.tarena.com 主机名
identified by "密码" 连接时使用的密码
with grant option 有授权权限
给谁授权
给使用者授权 (网站服务器 )
管理者(运维工程师)
允许数据库管理员root用户可以在254主机连接数据库服务器,
连接密码是abc123 连接后有完全权限且有授权权限
mysql>grant all on *.* to root@"192.168.4.254"
identified by "abc123" with grant option;
mysql>grant select,update(name) on userdb.user to
student identified by "123456";
select user(); 显示登录的用户名和客户端地址
show grants; 连接用户查看自己的访问权限
在客户端登录测试授权
#which mysql
#yum -y install mariadb
#mysql -h192.168.4.12 -uroot -pabc123
mysql>
grant all on bbsdb.* to webadmin@"192.168.4.11"
identified by "123456";
+++++++++++++++++++++++++++++++
授权信息存储在授权库mysql库里
user 已有的授权用户及访问权限
db 记录授权用户对本机库的访问权限
tables_priv 记录授权用户对本机表的访问权限
columns_priv 记录授权用户对本机表中字段的访问权限
查看已有的授权用户及权限
select user,host from mysql.user;
数据库管理员查看授权用户的权限信息
show grants for 用户名@"客户端地址";
撤销用户授权
revoke 权限列表 on 库名 from 用户名@"客户端地址";
mysql> revoke grant option on *.* from
'root'@'192.168.4.254';
mysql> revoke delete on bbsdb.* from
'webadmin'@'192.168.4.11';
mysql> show grants for 'webadmin'@'192.168.4.11';
mysql>update mysql.db set
Insert_priv="N",Update_priv="N" where db="bbsdb";
mysql> flush privileges;
mysql> show grants for 'webadmin'@'192.168.4.11';
mysql> revoke all on bbsdb.* from
'webadmin'@'192.168.4.11';
删除授权用户
方法一:
mysql>delete from mysql.user where
user="webadmin" and host="192.168.4.11";
mysql> flush privileges;
方法二
mysql> drop user 用户名@"客户端地址";
授权用户登录后修改自己的登录密码
SET PASSWORD=PASSWORD('新密码');
管理员 root 重置授权用的登录密码
SET PASSWORD
FOR 用户名@'客户端地址'=PASSWORD('新密码');
++++++++++++++++++++++++++++++++
安装mysql图形管理工具 phpmyadmin
#yum -y install httpd php
#systemctl start httpd; systemctl enable httpd
[root@localhost ~]# cat /var/www/html/test.php
<?php
phpinfo();
?>
[root@localhost ~]#
客户端访问
firefox http://192.168.4.12/test.php
# tar -zxvf phpMyAdmin-2.11.11-all-languages.tar.gz
-C /var/www/html/
#cd /var/www/html/
#mv phpMyAdmin-2.11.11-all-languages/ phpmyadmin
#chown -R apache:apache phpmyadmin
#cd phpmyadmin
#cp config.sample.inc.php config.inc.php
#vim config.inc.php
17 $cfg['blowfish_secret'] = 'plj123';
31 $cfg['Servers'][$i]['host'] = 'localhost';
:wq
# yum -y install php-mysql
#mysql -uroot -p123qqq
mysql>create database webdb;
mysql>grant all on webdb.* to webuser@"localhost"
identified by "123456";
客户端访问
firefox http://192.168.4.12/phpmyadmin
用户 webuser
密码 123456
+++++++++++++++++++++++++++++++++
数据备份与恢复
1 为什么要备份数据?
数据丢失或误删除时,使用备份文件恢复数据。
2 数据备份方式?
物理备份? 备份库或表对应文件
cp -r /var/lib/mysql/mysql /opt/mysql.bak
cp /var/lib/mysql/mysql/user.* /opt/
tar -zcvf /opt/mysql.tar.gz /var/lib/mysql/mysql/*
164 cp -r /mydata/mysql.bak/ /var/lib/mysql/mysql
165 chown -R mysql:mysql /var/lib/mysql/mysql
166 systemctl restart mysqld
逻辑备份?备份时根据已有的库表及记录生成对应的sql命令,把
sql保存到指定的备份文件里
3数据备份策略?
完全备份 备份所有数据(一台服务器 一个库 一张表)
差异备份 备份自完全备份后所有新产生
增量备份 备份自上一次备份后所有新产生
完全备份+差异备份
完全备份+增量备份
4在生成环境下如何实现数据备份
周期性计划任务 执行 备份脚本
00 18 * * 1 sh /shell/allbak.sh