mysql——进阶篇,mysql日志的分类及作用, mysq数据库的备份和恢复~~~!

改密~

修改密码

  • 数据库外操作
  • 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; 刷新库

重置密码

步骤

  1. service myslqd stop 关闭数据库【centos6的命令】
    mysqld_safe --skip-grant-tables 跳过授权列表
  2. 打开另一个终端直接,命令行敲mysql登录数据库
  3. update mysql.user set Password=password('123') where User='root' and Host='localhost'; 更改数据库user表
    flush privileges; 刷新库
  4. 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日志的内容并应用到从库服务器上

猜你喜欢

转载自blog.csdn.net/qing1912/article/details/109015824