一、用户授权
命令格式:
grant 权限列表 on 库名 to 用户名@"客户端地址"
identified by "密码" ==>>授权用户密码
with grant option; ==>>使该用户有授权权限,可选项
权限列表:
all 所有权限
usage 无权限
select,update,insert 个别权限
select,update,insert(字段1,.....,字段N) 指定字段
库名:
*.* 所有库所有表
库名.* 一个库
库名.表名 一张表
客户端地址:
% 所有主机
192.168.4.% 网段内所有主机
192.168.4.5 一个主机
locahost 数据库服务器本机
mysql> grant all on db4.* to yaya@"%" identified by "123qqq...A";
登录用户使用:
select user(); 显示登陆用户名及客户端地址
show grants; 用户显示自身访问权限
set password=password(“密码”) 授权用户连接后修改连接密码
set password for 用户名@“客户端地址”=password(“密码”) 管理员重置授权用户连接密码
show grants for 用户名@“客户端地址”; 管理员查看已有授权用户权限
drop user 用户名@“客户端地址”; 删除授权用户(必须有管理员权限)
授权用户
mysql> select user();
mysql> show grants;
mysql> set password=password("123qqqq...A");
管理员用户
mysql> show grants for yaya@"%";
mysql> set password for yaya@"%" = password("123qqq...A");
mysql> drop user yaya@"%";
mysql库记录授权信息
user表 记录已有的授权用户及权限
db表 记录已有授权用户对数据库的访问权限
tables_priv 记录已有授权用户对表的访问权限
columns_priv 记录已有授权用户对字段的访问权限
可以通过修改表记录修改权限
mysql> select host,user from mysql.user;
+-------------+---------------+
| host | user |
+-------------+---------------+
| % | mydna |
| % | yaya |
| 192.168.4.% | admin |
| localhost | admin |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-------------+---------------+
mysql> select host,user,db from mysql.db;
+-----------+---------------+--------------------+
| host | user | db |
+-----------+---------------+--------------------+
| % | yaya | db4 |
| localhost | admin | db3 |
| localhost | mysql.session | performance_schema |
| localhost | mysql.sys | sys |
+-----------+---------------+--------------------+
mysql> select host,user,db,table_name from mysql.tables_priv;
+-------------+---------------+-------+------------+
| host | user | db | table_name |
+-------------+---------------+-------+------------+
| 192.168.4.% | admin | db3 | user |
| localhost | mysql.session | mysql | user |
| localhost | mysql.sys | sys | sys_config |
+-------------+---------------+-------+------------+
mysql> select host,user,db,table_name from mysql.columns_priv;
+------+------+-----+------------+
| host | user | db | table_name |
+------+------+-----+------------+
| % | yaya | db3 | user |
| % | yaya | db3 | user |
+------+------+-----+------------+
撤销权限
命令格式:
revoke 权限列表 on 库名.表名 from 用户名@“客户端地址”;
mysql> revoke grant option on *.* from mydna@"%";
mysql> revoke delete,update on *.* from mydna@"%";
mysql> revoke all on *.* from mydna@"%";
mysql> drop user mydna@"%";二、备份
物理备份及恢复
备份操作
[root@mysql50 ~]# cp -r /var/lib/mysql /opt/mysql.bak
[root@mysql50 ~]# tar -zcvf /opt/mysql.tar.gz /var/lib/mysql/*
恢复操作
[root@mysql53 ~]# cp -r /opt/mysql.bak /var/lib/mysql/
[root@mysql53 ~]# tar -zxvf /opt/mysql.tar.gz -C /var/lib/mysql/
[root@mysql53 ~]# chown -R mysql:mysql /var/lib/mysql1.完全备份:备份所有数据
备份数据:]#mysqldump -uroot -p密码 库名 > 目录/xxx.sql
库名:
--all-databases或-A 所有库
数据库名 单个库
数据库名 表名 单张表
-B 数据库1 数据库2 多个库
[root@mysql50 ~]# mysqldump -uroot -ptarena db3 user > /root/db3_user.sql
恢复数据: ]#mysql -uroot -p密码 [库名] < 目录/xxx.sql
[root@mysql51 ~]# mysql -uroot -ptarena db3 < db3_user.sql2.增量备份:备份上次备份后,所有新产生的数据
1)启用binlog日志
[root@mysql50 ~]# vim /etc/my.cnf
[mysqld]
....
log_bin ==>>启用binlog日志
server_id=50 ==>>标识本机服务id
max_binlog_size=500MB ==>>指定日志文件容量,默认为1G
....
[root@mysql50 ~]# systemctl restart mysqld
mysql> show master status; ==>>查看binlog日志
[root@mysql50 ~]# ls /var/lib/mysql
mysql50-bin.index ==>>binlog日志的索引文件
手动生成新的日志文件
1.[root@mysql50 ~]# systemctl restart mysqld
2.[root@mysql50 ~]# mysqldump --flush-logs
3.[root@mysql50 ~]# mysql -uroot -ptarena -e 'flush log'
4.mysql> flush logs
2)清理日志
mysql> purge master logs to "mysql50-bin.000003"; ==>>删除指定编号之前的binlog日志
mysql> reset master; ==>>删除所有binlog日志,重建新日志3)自定义日志名和存储位置
[root@mysql50 ~]# vim /etc/my.cnf
[mysqld]
....
log_bin=/myload/50-logs ==>>定义目录与文件民前缀
....
[root@mysql50 ~]# systemctl restart mysqld
[root@mysql50 ~]# chown mysql.mysql /myload
mysql> show master status;4)分析日志
三种记录方式:
statement 报表模式
row 行模式
mixed 混合模式
mysql> show variables like "binlog_format"; ==>>查看日志房前记录格式
[root@mysql50 ~]# vim /etc/my.cnf ==>>修改日志记录格式
[mysqld]
.....
binlog_format=row
....
[root@mysql50 ~]# systemctl restart mysqld5)查看日志内容
格式:mysqlbinlog [选项] binlog日志文件名
选项:
--start-datetime=“yyyy-mm-dd hh:mm:ss” 起始时间
--stop-datetime=“yyyy-mm-dd hh:mm:ss” 结束时间
--start-position=数字 起始偏移量
--stop-position=数字 结束偏移量
[root@mysql50 ~]# mysqlbinlog --start-datetime="2020-01-01 00:00:00" /var/lib/mysql/mysql50-bin.0000016)恢复数据
命令格式:
mysqlbinlog [选项] 日志文件 |mysql -uroot -p密码
选项:
--start-datetime=“yyyy-mm-dd hh:mm:ss” 起始时间
--stop-datetime=“yyyy-mm-dd hh:mm:ss” 结束时间
--start-position=数字 起始偏移量
--stop-position=数字 结束偏移量
[root@mysql50 ~]# mysqlbinlog /var/lib/mysql/mysql50-bin.000001 |mysql -uroot -ptarena ==>>恢复全部
[root@mysql50 ~]# mysqlbinlog --start-position=125 --stop-position=535 /var/lib/mysql/mysql50-bin.000001 |mysql -uroot -ptarena ==>>恢复指定范围数据
3.差异备份:备份上次完全备份后,所有新产生的数据三、root密码管理
恢复root密码
[root@mysql54 ~]# vim /etc/my.cnf
[mysqld]
....
skip-grant-tables ==>>添加此行,跳过权限列表认证,有密码策略注释掉
....
[root@mysql54 ~]# systemctl restart mysqld
[root@mysql54 ~]# mysql
mysql> update mysql.user set authentication_string=password("123qqq...A")
-> where user="root" and host="localhost";
mysql> flush privileges;
mysql> quit
[root@mysql54 ~]# vim /etc/my.cnf
[mysqld]
....
#skip-grant-tables
....
[root@mysql54 ~]# systemctl restart mysqld
[root@mysql54 ~]# mysql -uroot -p123qqq...A
重置root密码
[root@mysql54 ~]# mysqladmin -uroot -p password "123qqq...A"
Enter password:
--------------------------------------------------------------------
[root@mysql54 ~]# mysqladmin -uroot -p password "新密码"
Enter password:旧密码
--------------------------------------------------------------------
mysql 授权指定数据库 mysql数据库授权语句
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mysql binlog查看指定数据库
mysql binlog查看指定数据库的方法。
mysql 二进制日志 MySQL -
Mysql数据库系统部署用户授权远程访问Mysql
安装部署Mysql5.5,授权远程访问,解决部署Mysql错误
mysql centos 数据库 -
mysql表授权语句 mysql数据库授权语句
MySQL用户授权 GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user
mysql表授权语句 mysql 数据库 insert delete