MySQL一周从入门到精通Day7

本文深入探讨了字符集如GB2312、GBK、UTF8MB4在MySQL中的应用,解析了SQL注入的原理及危害,并介绍了如何利用binlog进行数据恢复。同时,文章还覆盖了数据库审计的重要性及多种图形化管理工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符集之 GB2312装不下“屌丝"??

  • **字符(Character)**是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
  • 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见的字符集有ASCII、GB2312、GBK、 GB18030、Unicode等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。
  • MySQL支持的字符集 show character set;utf8mb4
  • 设置字符集
  • 1、数据库
    • 创建数据库时指定字符集CREATE DATABASE databaseName CHARSET utf8 COLLATE utf8_general_ci;
    • 查看数据库的字符集SHOW CREATE DATABASE databaseName;
  • 2、表
    • 创建表时指定字符集CREATE TABLE tableName(…) DEFAULT CHARSET=utf8;
    • 查看数据库的字符集SHOW CREATE TABLE tableName;
  • 3、字段
    • CREATE TABLE tableName(…, name varchar(50) not null CHARSET utf8, …);
实战:字符集之GB2312装不下“屌丝“
#
create table t1(name varchar(30)) dafault charset=gb2312;	

insert into t1 value2("张三");
//ok
insert into t1 values("屌丝")//失败了!!!!!!gb2312不支持繁体字

#
create table t1(name varchar(30)) dafault charset=gbk;

insert into t1 value2("张三");
insert into t1 values("屌丝")//成功!!!!!!

黑客常说的SQL注入是什么???

  • SQL注入(SQL Injection)是指应用程序对用户输入数据的合法性没有判断、没有过滤,攻击者可以在应用程序中通过表单提交特殊的字符串,该特殊字符串会改变SQL的运行结果,从而在管理员毫不知情的情况下实现非法操作,以此来实现欺骗数据库执行非授权的任意查询。
  • 特性:广泛性/隐蔽性/危害性/操作简单

实战:如何进行SQL注入

  • 验证账号密码是否匹配
create table user(
id int not null auto_increment primary key,
username varchar(30) comment '用户名',
password varchar(30) comment '密码'
);
insert into user(username, password) values('admin', '123456');
insert into user(username, password) values('test', '123456');

#
select * from user where username='abc' and password='' or '1'='1';

如何恢复误删的数据

什么是binlog日志
  • MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
  • 万一遇到数据丢失的紧急情况下,可以使用binlog日志进行数据恢复(定时全备份+binlog日志恢复增量数据部分
使用binlog恢复误删的数据
#查看所有二进制日志列表
show master logs;
#查看正在使用的二进制日志
show master status;
#刷新日志(重新开始新的binlog日志文件)
flush logs;
#查询指定的binlog
show binlog events in 'WQ-20160826MDKU-bin.000050' from 10668\G; 
#导出恢复数据用的sql
mysqlbinlog "C:\ProgramData\MySQL\MySQL Server 8.0\Data\WQ-20160826MDKU-bin.000057" --
start-position 528 --stop-position 1191 > d:\backup\test.sql

审计功能:谁什么时间做了什么

  • 审计是数据库安全中很重要的一个环节,它能够实时记录数据库的操作记录,帮助数据库管理员对数据库异常行为进行分析审核。审计会详细记录谁、在什么时间、执行了什么操作。MySQL社区版没有自带的审计功能或插件,MySQL商业版中有审计功能。
  • 第三方的审计插件
  • Percona审计插件 audit log: 此插件是Percona的内置审计插件,兼容性不高,需要适配。
  • MariaDB审计插件 server audit: 此插件是MariaDB的内置审计插件,MariaDB_5.5.37版和MariaDB_10.0.10以后版本的audit插件支持MariaDB、MySQL和Percona Server使用。
  • Mcafee审计插件 libaudit_plugin: 此插件已经在github上开源,它是McAfee公司基 于Percona开发的MySQL审计插件。

MySQL图形化管理工具

  • MySQL的管理工具非常多,除了自带的命令行管理工具之外,还有许多其他的图形化管理工具。

  • MySQL Workbench
    MySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它是MySQL官方提供的图形化管理工具,功能很强大,值得推荐。
    下载地址:https://dev.mysql.com/downloads/workbench/

  • HeidiSQL
    HeidiSQL是一款免费的软件,其目标是易于学习和使用,可用于MySQL、MariaDB、SQL Server和PostgreSQL。
    下载地址:https://www.heidisql.com/

  • phpMyAdmin
    phpMyAdmin是采用PHP语言开发的,需要部署在Web服务器上,管理者可用Web接口管理MySQL数据库,支持中文。
    下载地址:https://www.phpmyadmin.net/

  • Navicat
    Navicat是开发者使用较多的一款图形化管理工具,界面简洁、功能强大、简单易学、支持中文。可用于MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL七种数据库。
    下载地址:http://www.navicat.com.cn/products

  • SQLyog
    Webyog公司的产品,一款易于使用、快速而简洁的mysql数据库图形化管理工具。
    下载地址:https://www.webyog.com/product/sqlyog


Windows下my.ini配置文件修改后无法启动的问题解决

  • 在Windows中,修改了MySQL 8.0的配置文件my.ini后会发现启动MySQL失败
  • 在Windows中,MySQL配置文件的编码为ANSI,但是修改配置文件后默认保存的编码为UTF-8,这会导致MySQL解析配置文件错误,无法启动。只需要将配置文件另存为ANSI编码即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值