mysql改密,重置,备份,权限和日志
改密~
修改密码
- 数据库外操作
- method-1
mysqladmin -uroot password 新密码
-
- method-2
mysqladmin -uroot -p旧密码 password 新密码
- 数据库内操作
- method-1
set password for root@’loalhost’=password(‘123’);
-
- method-2
update mysql.user set Password=password(‘新密码’) where User=’用户名’ and Host=’主机’;
flush privileges;
刷新库
重置密码
步骤
service myslqd stop
关闭数据库【centos6的命令】
mysqld_safe --skip-grant-tables
跳过授权列表- 打开另一个终端直接,命令行敲
mysql
登录数据库 update mysql.user set Password=password('123') where User='root' and Host='localhost';
更改数据库user表
flush privileges;
刷新库service mysqld restart
重启mysql
数据库备份
- 【实际备份的就是mysql语句】
用到的命令:
mysqldump
,是一个shell命令
可加参数 :
-u "用户" -p "密码" -A 全部备份 -B "指定DB"
-c "压缩" -T "指定表" -o "指定目录" -t "指定并行数,默认是4"
-P 端口 -q:快速导出 -d:只导出表结构 -X:导出为xml文件
-f:即使发现sql错误,仍然继续备份
--less-locking "尽量减少锁表锁定时间(针对InnoDB)"
-A 参数 例子:
mysqldump -uroot -proot -A > all.sql
-B 参数 例子:
mysql -uroot -proot -B wg > wg.sql
- 导出method-1
mysql -uroot -proot < wg.sql
-
- 导出method-2
source /root/wg.sql
备份指定数据库的某个表
mysqldump -uroot -proot mysql user > user.sql
数据库名 表名>盘符:\路径\文件名.sql
恢复表
- 将user表导入到wg数据库中
mysql -uroot -proot wg < user.sql
创建用户
create user 用户名@'地址' identified by'密码';
操作步骤:
- client端执行 本机ip101
create user tom@’192.168.1.102’
- server端执行 本机ip102
mysql -utom -h192.168.101
mysql的加速操作:
skip_name_resolve
【跳过域名解析】- 配置文件内添加,重启即可生效
权限
- 常用权限包括:
create drop insert select update delete .....
- all:对指定的库拥有全部权限
- select:只有查看指定库的权限
- insert:只有在指定库的插入记录权限
- update:updtae(字段1,字段2.......)更新权限,对某表某字段的更改权限
- delete:
- USAGE:对库和表没有任何权限,用户只能登录
- 多个权限逗号,分隔:select,insert.
【其中只有select
为读的权限,其他都为写的权限】
- (查看权限)
show grants for tom@’192.168.1.102’;
作用范围:
- 【全局 库 列 表】
- 数据库名
*.* 全局级别 所有数据库和所有表
库.* 库级别 指定库的所有表
库.表 表级别 指定库的指定表
权限的授予
grant create,drop on *.* to tom@’192.168.1.102’;
- analysis(解析)
grant 权限 on 数据库名.表名 to 用户@'地址';【字段解析】
- 例子:
给192.168.1.101主机的tom用户授权创建和删除的权限
grant create,drop on *.* to tom@'192.168.1.101';
权限的收回
- 收回Jack用户的的创建权限
revoke create on wg.stu from jack@’192.168.1.102’;
- analysis(解析)
revoke 权限列表 on 数据库名.表名 from 用户@'地址';
日志:
----- 查看mysql
的运行状态
错误日志
记录启动、运行或停止mysql
时出现的问题
-
- 排错命令【查看日志】:
tail -f /var/log/mysql.log
状态- - -
warning 警告 note 笔记 error 出错
查询日志
general log
(通用日志),误区认为只有select
为查询
其实还有update
时也会查询因为更新的时候很可能会更新某一块数据
delete
查询,只删除符合条件的数据
- 在并发操作非常多的场景下,查询信息会非常多,那么如果都记录下来会导致IO非常大,影响MySQL性能,因此如果不是在调试环境下,是不建议开启查询日志功能的
慢日志:
记录查询时间较长的日志
show variables like ‘ %char%’;
编码字符集模糊查询
- 步骤:
编辑配置文件 vim /etc/my.cnf
开启慢日志 log_slow_queries=1
指定慢日志路径 slow_query_log_file=/tmp/mysql.slow.log
二进制日志
记录我们的增,删,改的mysql
语句
扫描二维码关注公众号,回复:
11879851 查看本文章
- 编辑配置文件
vim /etc/my.cnf
添加 log_bin=mysql-bin
(放路径 /var/lib/mysql)
- 查询/查看二进制日志
show variables like ‘ %log_bin%’;
- 查看位置【
position
】变化
show master status;
- mysql-bin.000001| mysql -uroot 二进制日志恢复数据库【位置】
mysqlbinlog /var/lib/mysql/mysql-bin.000001
mysqlbinlog --start-position=106 --stop-position=185
- mysql-bin.000001| mysql -uroot 二进制日志恢复数据库【时间】
mysqlbinlog --start-datetime=’2020-06-17 15:46:30’
--start-datetime=’2020-06-17 15:46:56’
命令 开始位置 结束位置
重置二进制日志:会删除所有的二进制日志文件,恢复到最初的状态
中继日志
relay log
是复制过程中产生的日志,很多方面都跟binary log
差不多,区别是:relay log
是从库服务器I/O线程将主库服务器的二进制日志读取过来记录到从库服务器本地文件,然后从库的SQL线程会读取relay-log
日志的内容并应用到从库服务器上