数据库
如何查看mysql数据库操作记录日志?
一、如何查看mysql数据库操作记录日志?
MySQL 8.0 重新定义了错误日志输出和过滤,改善了原来臃肿并且可读性很差的错误日志。比如增加了 JSON 输出,在原来的日志后面以序号以及 JSON 后缀的方式展示。比如我机器上的 MySQL 以 JSON 保存的错误日志 mysqld.log.00.json:[root@centos-ytt80 mysql80]# jq . mysqld.log.00.json{ "log_type": 1, "prio": 1, "err_code": 12592, "subsystem": "InnoDB", "msg": "Operating system error number 2 in a file operation.", "time": "2019-09-03T08:16:12.111808Z", "thread": 8, "err_symbol": "ER_IB_MSG_767", "SQL_state": "HY000", "label": "Error"}{ "log_type": 1, "prio": 1, "err_code": 12593, "subsystem": "InnoDB", "msg": "The error means the system cannot find the path specified.", "time": "2019-09-03T08:16:12.111915Z", "thread": 8, "err_symbol": "ER_IB_MSG_768", "SQL_state": "HY000", "label": "Error"}{ "log_type": 1, "prio": 1, "err_code": 12216, "subsystem": "InnoDB", "msg": "Cannot open datafile for read-only: './ytt2/a.ibd' OS error: 71", "time": "2019-09-03T08:16:12.111933Z", "thread": 8, "err_symbol": "ER_IB_MSG_391", "SQL_state": "HY000", "label": "Error"}以 JSON 输出错误日志后可读性和可操作性增强了许多。这里可以用 Linux 命令 jq 或者把这个字串 COPY 到其他解析 JSON 的工具方便处理。只想非常快速的拿出错误信息,忽略其他信息。[root@centos-ytt80 mysql80]# jq '.msg' mysqld.log.00.json"Operating system error number 2 in a file operation.""The error means the system cannot find the path specified.""Cannot open datafile for read-only: './ytt2/a.ibd' OS error: 71""Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.""Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue."使用 JSON 输出的前提是安装 JSON 输出部件。
INSTALL COMPONENT 'file://component_log_sink_json';
完了在设置变量 SET GLOBAL log_error_services = 'log_filter_internal; log_sink_json';
格式为:过滤规则;日志输出;[过滤规则]日志输出;查看安装好的部件mysql> select * from mysql.component;+--------------+--------------------+---------------------------------------+| component_id | component_group_id | component_urn |+--------------+--------------------+---------------------------------------+| 2 | 1 | file://component_log_sink_json |+--------------+--------------------+---------------------------------------+3 rows in set (0.00 sec)
现在设置 JSON 输出,输出到系统日志的同时输出到 JSON 格式日志。mysql> SET persist log_error_services = 'log_filter_internal; log_sink_internal; log_sink_json';Query OK, 0 rows affected (0.00 sec)
来测试一把。我之前已经把表 a 物理文件删掉了。mysql> select * from a;ERROR 1812 (HY000): Tablespace is missing for table `ytt2`.`a`.
现在错误日志里有 5 条记录。
[root@centos-ytt80 mysql80]# tailf mysqld.log
2019-09-03T08:16:12.111808Z 8 [ERROR] [MY-012592] [InnoDB] Operating system error number 2 in a file operation.
2019-09-03T08:16:12.111915Z 8 [ERROR] [MY-012593] [InnoDB] The error means the system cannot find the path specified.
2019-09-03T08:16:12.111933Z 8 [ERROR] [MY-012216] [InnoDB] Cannot open datafile for read-only: './ytt2/a.ibd' OS error: 71
2019-09-03T08:16:12.112227Z 8 [Warning] [MY-012049] [InnoDB] Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.
2019-09-03T08:16:14.902617Z 8 [Warning] [MY-012049] [InnoDB] Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.
JSON 日志里也有 5 条记录。
[root@centos-ytt80 mysql80]# tailf mysqld.log.00.json
{ "log_type" : 1, "prio" : 1, "err_code" : 12592, "subsystem" : "InnoDB", "msg" : "Operating system error number 2 in a file operation.", "time" : "2019-09-03T08:16:12.111808Z", "thread" : 8, "err_symbol" : "ER_IB_MSG_767", "SQL_state" : "HY000", "label" : "Error" }
{ "log_type" : 1, "prio" : 1, "err_code" : 12593, "subsystem" : "InnoDB", "msg" : "The error means the system cannot find the path specified.", "time" : "2019-09-03T08:16:12.111915Z", "thread" : 8, "err_symbol" : "ER_IB_MSG_768", "SQL_state" : "HY000", "label" : "Error" }
{ "log_type" : 1, "prio" : 1, "err_code" : 12216, "subsystem" : "InnoDB", "msg" : "Cannot open datafile for read-only: './ytt2/a.ibd' OS error: 71", "time" : "2019-09-03T08:16:12.111933Z", "thread" : 8, "err_symbol" : "ER_IB_MSG_391", "SQL_state" : "HY000", "label" : "Error" }
{ "log_type" : 1, "prio" : 2, "err_code" : 12049, "subsystem" : "InnoDB", "msg" : "Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.", "time" : "2019-09-03T08:16:12.112227Z", "thread" : 8, "err_symbol" : "ER_IB_MSG_224", "SQL_state" : "HY000", "label" : "Warning" }
{ "log_type" : 1, "prio" : 2, "err_code" : 12049, "subsystem" : "InnoDB", "msg" : "Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.", "time" : "2019-09-03T08:16:14.902617Z", "thread" : 8, "err_symbol" : "ER_IB_MSG_224", "SQL_state" : "HY000", "label" : "Warning" }
那可能有人就问了,这有啥意义呢?只是把格式变了,过滤的规则我看还是没变。那我们现在给第二条日志输出加过滤规则先把过滤日志的部件安装起来
INSTALL COMPONENT 'file://component_log_filter_dragnet';
mysql> SET persist log_error_services = 'log_filter_internal; log_sink_internal; log_filter_dragnet;log_sink_json';
Query OK, 0 rows affected (0.00 sec)
只保留 error,其余的一律过滤掉。SET GLOBAL dragnet.log_error_filter_rules = 'IF prio>=WARNING THEN drop.';
检索一张误删的表mysql> select * from a;ERROR 1812 (HY000): Tablespace is missing for table `ytt2`.`a`.
查看错误日志和 JSON 错误日志发现错误日志里有一条 Warning,JSON 错误日志里的被过滤掉了。2019-09-03T08:22:32.978728Z 8 [Warning] [MY-012049] [InnoDB] Cannot calculate statistics for table `ytt2`.`a` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.
再举个例子,每 60 秒只允许记录一个 Warning 事件mysql> SET GLOBAL dragnet.log_error_filter_rules = 'IF prio==WARNING THEN throttle 1/60.';Query OK, 0 rows affected (0.00 sec)
多次执行mysql> select * from b;ERROR 1812 (HY000): Tablespace is missing for table `ytt2`.`b`.mysql> select * from b;ERROR 1812 (HY000): Tablespace is missing for table `ytt2`.`b`.mysql> select * from b;ERROR 1812 (HY000): Tablespace is missing for table `ytt2`.`b`.
现在错误日志里有三条 warning 信息
2019-09-03T08:49:06.820635Z 8 [Warning] [MY-012049] [InnoDB] Cannot calculate statistics for table `ytt2`.`b` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.
2019-09-03T08:49:31.455907Z 8 [Warning] [MY-012049] [InnoDB] Cannot calculate statistics for table `ytt2`.`b` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.
2019-09-03T08:50:00.430867Z 8 [Warning] [MY-012049] [InnoDB] Cannot calculate statistics for table `ytt2`.`b` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.
mysqld.log.00.json 只有一条{ "log_type" : 1, "prio" : 2, "err_code" : 12049, "subsystem" : "InnoDB", "msg" : "Cannot calculate statistics for table `ytt2`.`b` because the .ibd file is missing. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting.html for how to resolve the issue.", "time" : "2019-09-03T08:49:06.820635Z", "thread" : 8, "err_symbol" : "ER_IB_MSG_224", "SQL_state" : "HY000", "and_n_more" : 3, "label" : "Warning" }
总结,我这里简单介绍了下 MySQL 8.0 的错误日志过滤以及 JSON 输出。MySQL 8.0 的component_log_filter_dragnet 部件过滤规则非常灵活,可以参考手册,根据它提供的语法写出自己的过滤掉的日志输出。
二、Myeclipse连接Mysql数据库具体操作?
1.第一步打开:Window>Open Perspective>MyEclipse Datebase Exploere。
2.第二步创建连接:在空白处右击鼠标点击 new 或者点击菜单栏中的快捷键(空白处三角符号)new。
3.第三步 选择连接方式: 在Driver template选项框中 选择MySql Connector/j。
4.第四步 填写配置信息。
5.第五步 添加驱动:点击Add JARs添加Mysql数据库的驱动文件。
6.第六步 测试数据配置是否正确 :点击Test Drive>>输入密码>>OK。
7.第七步 测试成功:点击OK,弹出对话提示 Database connection successfully established。
8.第八歩 连接数据库:点击Finish完成连接。
三、怎么使用mysql odbc操作数据库?
1、首先建立ODBC数据源
依次打开:我的电脑 - 控制面板 - 管理工具 - 数据源(ODBC)-点击“系统DNS” 选择右边的添加,在弹出的框中拉到后面,选择“Mysql ODBC5.1 Driver”,
点击完成,就会出现信息,根据提示填写
Date soure Name:随便填,建议英文!
Description:描述!随便填,建议英文!
server:localhost(如果是本地服务器就天localhost,否则填你的服务的ip地址)
user:你的mysql的用户名
password:你的mysql的密码
DataBase:点下拉菜单,选择当前你mysql数据库中存在的数据库
到这里ODBC数据源建立完毕
2、已经添加数据源后,打开VS2013,找到服务器资源管理器,找到数据连接选项
3、右键单击,选择添加链接,在弹出的对话框中选择odbc数据源
4、选择你添加的数据源,填写你添加数据源时的用户名和密码
5、链接测试,测试成功,则可以点击确定了
四、如何高效操作MySQL数据库?MySQL数据库操作技巧大揭秘
MySQL数据库操作技巧大揭秘
MySQL是一种常用的关系型数据库管理系统,为了更高效地进行数据管理和操作,掌握一些基本的MySQL数据库操作技巧是至关重要的。下面将介绍一些常用的MySQL数据库操作技巧,帮助您更好地进行数据库管理。
1. 数据库连接与断开
在操作MySQL数据库之前,首先需要进行数据库的连接。使用mysqli_connect
函数可以连接到MySQL数据库,而mysqli_close
函数用于断开与数据库的连接。连接数据库时需要提供主机名、用户名、密码和数据库名等信息。
2. 数据库查询
数据库查询是MySQL操作中的常见需求,可以使用SELECT
语句来实现。在执行查询操作时,可以使用mysqli_query
函数执行SQL查询语句,并使用mysqli_fetch_array
函数获取查询结果集中的数据。
3. 数据库更新与删除
当需要更新或删除数据库中的数据时,可以使用UPDATE
和DELETE
语句。在执行更新或删除操作时,需要注意数据表的索引、条件限制等,以避免对数据库造成不必要的影响。
4. 数据库事务
数据库事务是一组SQL语句的集合,要么全部执行成功,要么全部执行失败。通过使用START TRANSACTION
、COMMIT
和ROLLBACK
等语句可以实现数据库事务的管理,确保数据操作的一致性和完整性。
5. 数据库备份与恢复
定期对数据库进行备份可以保障数据的安全,遇到意外情况时可以及时恢复数据。可以使用mysqldump
命令实现MySQL数据库的备份,而恢复时可以使用source
命令或导入备份文件进行数据恢复操作。
掌握了以上基本的MySQL数据库操作技巧,相信您对MySQL数据库的管理与操作已经有了更深入的了解。在实际应用中,结合具体的业务需求,灵活运用这些技巧,将有助于提高数据库操作的效率,同时保障数据的安全和完整性。
感谢您阅读本文,希望以上内容对您在MySQL数据库操作方面有所帮助。祝您在数据管理和数据库操作中一切顺利!
五、mysql四种基本数据库操作命令?
数据操作语言包括四种:增(insert)删(delete)查(select)改(update)
1、添加数据
命令:insert into values("里面放的数据是要添加的东西")
2、查询表中的数据
1)、查询所有行
命令: select from < 表名 > where < 表达式 >
2)、查询前几行数据
3、删除表中数据
命令:delete from 表名 where 表达式
例如:删除表stu中学号为001 的记录
mysql> delete from MyClass where id='001';
4、修改表中数据
命令:update 表名 set where 条件
mysql> update stu set age=19 where id='001';
六、mysql相关操作?
1、读取数据
select * from tb1;
select count(*) from tb1; #获取数据库条数 count(1)效果相同,效率更高
2、插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
3、更新数据
UPDATA tb1 SET name='li' where id=3;
UPDATA tb1 SET name=default where id=2; #将名字赋予默认值
4、删除数据
DELETE FROM tb1 where id=1;
5、where 条件查询
select * where name='luo';
select * where BINARY name ='luo'; //数据库默认是不区分大小写的 用 BINARY来强调大小写
6、like结合正则表达式进行查询
七、mysql installer是mysql数据库吗?
MYSQL官方提供了Installer方式安装MYSQL服务以及其他组件,使的Windows下安装,卸载,配置MYSQL变得特别简单。就是说MySQL Installer可以直接和其他电脑软件一样安装,而且里面包含MySQL Community Server。
八、Navicat for MySQL怎么连接MySQL数据库?
1开启电脑后,进入系统桌面,选择开启桌面上的Navicate for MySQL软件。
2点击后,会自动进入软件主界面,在软件主界面,找到并点击连接选项。
3点击后,会进入新建连接中。
4在新建连接选项中,输入新建的连接名,可以任意命名。
5输入完连接名后,找到密码选项,输入MySQL的密码。
6输入完密码后,点击确定退出连接。
7点击后,自动返回主界面,会发现主界面中就有了新建立的连接。
九、Navicat for MySql如何连接mysql数据库?
首先你电脑上必须安装了mysql的数据库。(如果你不清楚自己是否已经安装成功mysql,你可以在开始菜单输入“mysql”,进行搜索)
打开你的Navicat for Mysql (这里也可以使用上面的方法,在开始菜单搜索框中输入‘navicat’)
打开后单机工具栏左边第一个‘connection’,进入连接页面。
最重要的一步:打开的界面有五个框需要输入,第一个:connection Name 需要的是你新建的连接的的名字,这里我们就命名为‘本地’,第二个:Host Name/Ip Address 你需要输入的是你本机的ip地址或者直接输入’localhost’,这里我们选择第二种。 第三个:Port ,输入你安装时候的端口号,一般为默认的3306;第四个和第五个分别为:UserName和Password,意思为你需要输入你数据库名用户名和密码,我的用户名是:root,密码:(保密,嘿嘿)。最后把下面那个‘Save Passwod’的小框框给勾上。
完成上面步骤,然后点击左下角有个‘Test Connectiion’如果弹出success,恭喜你直接点击右下角的‘save’按钮就可以了。如果弹出error ,你则需要再重新仔细查看自己哪里填错了。
点击‘save’后,你就可以双击“本地”(这里的‘本地’是你刚才输入的connection Name),然后打开你的数据库了。
十、MySQL数据库导入操作指南
准备工作
在开始导入MySQL数据库之前,确保你已经具备以下条件:
- 已经安装了MySQL数据库
- 拥有要导入的数据库备份文件(通常是以.sql文件格式保存的)
- 已经记住了MySQL数据库的用户名和密码
通过命令行导入
使用命令行是在MySQL中导入数据库的常见方式。在命令行中执行以下命令:
mysql -u 用户名 -p 数据库名 < 文件名.sql
请确保将“用户名”替换为你的实际用户名,“数据库名”替换为要导入的数据库名称,“文件名.sql”替换为你的备份文件的实际名称。
通过图形化工具导入
除了命令行,你也可以选择使用图形化工具来导入MySQL数据库。常见的工具如Navicat、MySQL Workbench等都提供了数据库导入功能,通过这些工具你可以很方便地导入数据库备份文件。
注意事项
在导入数据库之前,务必确保你有权限创建数据库和数据表。另外,如果你正在导入的数据库已经存在同名数据库,那么旧的数据库将被新的数据库替换。
总结
MySQL数据库的导入是一个常见且重要的操作,通过本文介绍的命令行和图形化工具两种方式,相信你已经掌握了如何进行数据库导入的方法。
感谢您阅读本文,希望本文能够帮助您顺利导入MySQL数据库。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...