MySQL用户及日志

用户管理

登录用户

客户端远程登录mysql语法:
mysql -u 用户名 -p 密码 -h ip地址 -P 端口号
#如果没有改端口号就不用-P指定端口

[root@xiaobai] mysql -uroot -p'XiaoBai@123!' -h 192.168.202.128   #登录mysql

客户端登录如果报错就进入server端的mysql服务器执行如下操作:

登录MySQL

mysql> use mysql;   #进入mysql库
mysql> update user set host = '%' where user = 'root';   #更新root用户的数据信息
mysql> flush privileges;   #刷新表信息

-h 指定主机名 [默认为localhost]
-P(大写) MySQL服务器端口 [默认3306]
-u 指定用户名 [默认root]
-p(小写) 指定登录密码 [默认为空密码]
-e 接SQL语句,可以写多条,用分号隔开
-D(大写) 为mysql指定登录数据库

创建删除用户及授权

创建用户及授权

mysql> create user 'xiaobai'@'localhost' identified by 'XiaoBai@123!';    #创建mysql用户xiaobai,并设置密码'
mysql> flush privileges;   #更新授权表

#删除xiaobai用户
mysql> drop user 'xiaobai'@'localhost';   #方法1'
mysql> delete from mysql.user where user='xiaobai' and mysql> host='localhost';   #方法2.要跟新表
mysql> flush privileges;

#创建用户语句解读
identified by:设置密码
'xiaobai'@'  ':@后的两个引号中间可以是一个ip也可以是一个网段或所有主机
% :所有主机
192.168.202.% :允许192.168.202.0网段的所有主机
192.168.202.128 :指定主机
localhost:指定主机
#授权语句
mysql> grant all on *.* to 'xiaobai'@'localhost' identified by 'XiaoBai@123!';   #授权给xiaobai用户

'修改远程登录
mysql> use mysql;
mysql> update user set host = '192.168.202.%' where = 'xiaobai';
mysql> flush privileges;   #刷新权限

修改完表后一定要刷新一下权限

#授权语句解读
grant   #修改权限
all   #所有权限,(不包括授权权限)
select,update   #查看与更新权限
usage   #链接登录权限(建立用户会自动添加这个权限)
select,insert   #查看与添加数据权限
replication slave   拥有此权限可以查看从服务器,从主服务器读取二进制日志
super   允许用户使用修改全局变量的SET语句以及change master语句
reload   必须拥有reload权限,才可以执行flush [tables、logs、privileges]

#库与表
*.*   所有库所有表
db1.*   db1库下的所有表
db1.t1   db1库下的t1表

#来源ip
%   任意来源
192.168.202.%   192.168.202网段的
little.xiaobai.com   域名
_   代表任意一个字符
#注:生产环境中密码采用高级别的密码,实际生产环境中将'%'换成来源的ip 

查看权限

mysql> show grants\G   #查看自己的权限(\G:友好输出)
mysql> show grants for 'xiaobai'@'localhost'\G   #查看xiaobai用户的权限

修改密码

[root@xiaobai] mysqladmin -uroot -p'XiaoBai@123!' password 'Little@123!'   #前面为旧密码,后面为新密码,此命令是在终端上执行的
#修改自己密码
mysql> set password='Little@123!';   #直接写新密码,是在mysql数据库中更改的
#root修改其他用户密码
mysql> use mysql;
mysql> set password for 'xiaobai'@'localhost'='Little@123!';   #后跟新密码
mysql> flush privileges;

权限控制机制

四张表:user,db,tables_priv,columns_priv
1.用户认证 查看mysql.user表
2.权限认证 以select权限为例:
(1).先看 user表里的select_priv权限 。
(Y):不会接着查看其他的表, 拥有查看所有库所有表的权限 。
(N):接着看db表。
(2).db表: 存储了某个用户对一个数据库的权限。
(Y):不会接着查看其他的表 ,拥有查看所有库所有表的权限。
(N):接着看tables_priv表。
3.tables_priv表:可以对单个表进行权限设置
table_priv:如果这个字段的值里包括select, 拥有查看这张表所有字段的权限,不会再接着往下看了 。
table_priv:如果这个字段的值里不包括select,接着查看下张表还需要有column_priv字段权限。
4.columns_priv:针对数据列设置操作权限。
column_priv:有select,则只对某一列有select权限。

日志管理

日志格式作用
Error Log错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log ,默认开启
Binary Log二进制日志(bin log):实现备份,增量备份。只记录改变数据,除了select都记
General query log通用查询日志:所有的查询都记下来。 默认关闭,一般不开启
Relay log中继日志(Relay log):读取主服务器的binlog,在slave机器本地回放。保持与主服务器数据一致
Slow query log慢查询日志,指导调优,定义某一个查询语句,执行时间过长,通过日志提供调优建议给开发 人员
DDL log(metadata log)定义语句的日志
#错误日志配置
[root@xiaobai] vim /etc/my.cnf
log-error=/var/log/mysql.log   #编译安装的在/usr/local/mysql/

#二进制日志配置
[root@xiaobai] vim /etc/my.cnf
log-bin=/var/log/mysql-bin/mylog   #如果不指定路径默认在/var/lib/mysql
server-id=1   #主从复制时使用
[root@xiaobai] mkdir /var/log/mysql-bin
[root@xiaobai] chown mysql.mysql /var/log/mysql-bin/   #修改属主属组给mysql
[root@xiaobai] systemctl restart mysqld   #重启mysql

bin-log日志

解决binlog日志不记录insert语句
登录mysql后,设置binlog的记录格式:
set binlog_format=statement;
然后,最好在my.cnf中添加:
binlog_format=statement
修改完配置文件之后记得重启服务

慢日志

慢查询日志
在mysql的配置文件中加
slow_query_log=1 #开启
slow_query_log_file=/var/log/mysql-slow/slow.log
long_query_time=3 #设置慢查询时间,单位为秒
保存退出后创建相对应的目录,并修改属主属组
重启mysql

文章总览分类目录 @小白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值