一、用户授权
1.1 用户授权
grant授权
mysql> grant select on dd1.* to mao@"%" identified by "123qqq...D";
mysql>grant all on *.* to jie@"192.168.4.%" identified by "123qqq...D";
mysql> grant all on dd1.* to mao1@"192.168.4.%" identified by "123qqq...A" with grant option; #让该用户有授权的权限,但是远程客户端登陆后,并不能授权,因为还需要mysql.user的写入权限
远程登陆数据库时
命令格式: mysql -h数据库服务器ip地址(连接本地localhost不用写) -u授权用户名 -p密码
mysql -h192.168.4.51 -uyaya -p123qqq…A
当更改密码时必须要使用set password=password(“密码”),要为密码加密,负责会报错
授权库
GRANT SELECT(car_info) ON my.car TO my; #为my用户授予my库中car表的car_info字段(列)SELECT权限
撤销权限
mysql> revoke all on *.* from jie@"192.168.4.%";
mysql> revoke grant option on dd1.* from mao1@"192.168.4.%"; #去掉授权权限
恢复root密码
重置root密码
[root@HOST51 ~]# mysqladmin -uroot -p778...qqqA password "tarena"
[root@proxy ~]# mysqladmin -uroot -p password "123qqq...D"
Enter password:
二、完全备份
备份概述
物理备份及恢复
逻辑备份
完全备份及其恢复
mysqldump -uroot -p -A > /mybak/fulldata.sql #-A代表所有
mysqldump -uroot -ptarena db1 > /mybak/db1.sql
mysqldump -uroot -ptarena db3 user > /mybak/db3_user.sql
mysqldump -uroot -ptarena -B db1 db2 db3 > /mybak/threeDB.sql #-B后面可以跟多个库
mysql -uroot -ptarena db1 < /root/db1.sql
多个或所有库导入时,才不用指定库名,其他需要加
增量备份
binlog日志
当不指定日志存放位置时,在/var/lib/mysql目录下
当/etc/my.cf文件中,log_bin=/存放目录(需要手动添加)/日志文件名(不需要手动添加)
日志默认大小为1G,当1G满了,则自动新建一个日志文件,可以手动创建新的日志文件
指定存放的日志文件目录需要把所有者和所有组改为mysql,否则会重启报错
mysqldump -uroot -ptarena --flush-logs db3 user > /root/db3_user.sql #该命令会新建一个日志文件
mysql> flush logs; #新建一个日志文件
mysql服务重启也会生成一个日志文件
mysql> show master status; #查看当前日志文件
初始日志文件的Position值为154
恢复数据
需要改成混合模式,才能导入某一段时间的记录,而不是这一段时间全部的记录
vim /etc/my.cnf
[mysqld]
binlog_format="mixed"
:wq
systemctl restart mysqld
mysql> show variables like "binlog_format";
mysql> insert
mysql> update
mysql> delete
mysql> show master status;
51]# scp /mylog/plj.000006 192.168.4.52:/root/
mysqlbinlog /opt/ppp.000006 #当更改格式后,使用该命令可以看到日志文件内容,选取偏量值at
mysqlbinlog --start-position=325 --stop-position=1113 /root/plj.000006 | mysql -uroot -ptarena
mysqlbinlog /root/plj.000006 | mysql -uroot -ptarena #导入日志文件
选取单条命令时,需要选取到commit;
如命令不加结尾的at值,默认到最下at值;
如命令不加开始at值,默认最上at值