开源数据库MySQL DBA运维实战 第4章 SQL3
一、DCL
1.权限级别
(1)Global level —-所有库,所有表的权限
(2) Database level —-某个数据库中的所有表的权限。
(3)Table level —–库中的某个表的权限
(4)Column level —– 表中的某个字段的权限
2.mysql用户管理
(1)创建用户
语法:CREATE USER [email protected]’localhost’ IDENTIFIED BY ‘[email protected]’;
CREATE 创建(关键字)
USER 用户(关键字)
user1 用户名称(自定义)
@ 分隔符(关键字)
‘localhost’ 允许登录的主机
IDENTIFIED BY 身份认证(关键字)
‘[email protected]’ 用户密码
- 删除用户
语法:DROP USER ‘user1’@’localhost’;
- 修改用户密码
- root修改自己的密码 (“123”是旧密码)
# mysqladmin -uroot -p’123′ password ‘new_password’
利用uodate更改自己的密码
UPDATE mysql.user SET authentication_string=password(‘new_password’) WHERE user=’root’ AND host=’localhost’;
或者:SET PASSWORD=password(‘new_password’);
Flush privileges —–刷新权限
- 丢失root用户密码
当root用户,忘记了密码,可以使用**的方式来登录系统。
原理:使系统在启动时,不加载密码文件。
步骤:
a: 修改mysql启动设置
# vim /etc/my.cnf
[mysqld]
skip-grant-tables
b: 重启mysql,无密码登录
# systemctl restart mysqld
# mysql -uroot
mysql>UPDATE mysql.user SET authentication_string=password(‘[email protected]’) where user=’root’ and host=’localhost’;
mysql> FLUSH PRIVILEGES;
- 登录MySQL
mysql -P 3306 -u root -p123 mysql -e ‘show tables’
-P MySQL服务器端口 【默认3306】 大P
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
此处mysql为指定登录的数据库
-e 接SQL语句
示例: 免登录查询数据库
mysql -uroot -p'[email protected]’ -hlocalhost -P 3306 mysql -e ‘show tables’
- mysql权限原理
语法格式
Grant 权限列表 on 库名.表名 to ‘用户名’@’客户端主机’ [identified by ‘密码’ with option参数];
mysql权限示例
赋予权授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
GRANT ALL ON bbs.* TO [email protected]’%’ IDENTIFIED BY ‘[email protected]’;
查看权限
查看自己的权限:SHOW GRANTS\G
查看别人的权限:SHOW GRANTS FOR [email protected]’%’\G
回收权限REVOKE
语法:REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
示例:REVOKE ALL PRIVILEGES ON bbs.* FROM [email protected]’%’; //回收所有权限
二、日志
- 日志分类
错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log
通用查询日志:所有的查询都记下来。
二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。
中继日志:读取主服务器的binlog,在本地回放。保持一致.
slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。
DDL log: 定义语句的日志。
- Error Log
vim /etc/my.cnf —进入主配置文件,观察日志是否启动。
log-error=/var/log/mysqld.log —该字段,标记是否启动日志,以及日志位置。
(如果哪天mysql服务起不来了,请来这个日志文件看看。)
- Binary Log –二进制日志
启动二进制
# vim /etc/my.cnf
log_bin —-添加该字段。指启动二进制日志
server-id=2 —–群集问题,必须指定该主机的序号。数字随意
# systemctl restart mysqld —–重启数据库
- Slow Query Log
默认慢查询日志未开启
- 开启慢查询日志功能
vim /etc/my.cnf
加入下面两行配置
slow_query_log=1 —-启动慢查询日志
long_query_time=3 —–当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
#systemctl restart mysqld —-重启服务器
本文来源 爱码网,其版权均为 原网址 所有 与本站无关,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源。