当前位置: 首页 > news >正文

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志

1.日志和备份的必要性

日志刷新

2.mysql的日志类型

(1)错误日志

查看当前错误日志和是否记录警告设置

(2)通用查询日志

查看通用查询日志的设置

(3)二进制日志

查看二进制文件的设置,查看最大大小,也可以在my.cnf中通过"max_binlog_size=xx"指定

查看二进制日志文件以及当前正使用哪个文件

读取二进制日志,mysqlbinlog 查看文件具体内容

清空二进制日志文件,删除二进制日志文件

 恢复二进制日志

(4)慢日志

查看慢日志位置和状态

临时开启慢日志,永久开启同理修改my.cnf文件


一.日志

1.日志和备份的必要性

在数据库保存数据时,有时候会因为误删除数据库,意外断电或程序意外终止,由于病毒造成的数据库损坏或丢失,文件系统损坏后,系统进行自检操作,升级数据库时,命令语句不严格,设备故障,自然灾害等不可避免会出现数据丢失或者被破坏,这样情况下,我们必须保证数据的安全性和完整性,就需要使用日志来查看或者恢复数据了。

默认情况下,所有日志创建于mysqld数据目录中。通过刷新日志(mysql下执行flush logs或者命令行执行mysqladmin flush-logs,mysqladmin refresh),你可以强制 mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志),如果你正使用MySQL复制功能,从复制服务器将维护更多日志文件,被称为接替日志。

日志刷新

[root@localhost mysql]# ll
-rw-r----- 1 mysql mysql     1782 Jul 23 20:33 binlog.000001
-rw-r----- 1 mysql mysql      593 Jul 24 10:01 binlog.000002mysql8.0 [SLB]>flush logs;
Query OK, 0 rows affected (0.03 sec)
[root@localhost mysql]# ll
-rw-r----- 1 mysql mysql     1782 Jul 23 20:33 binlog.000001
-rw-r----- 1 mysql mysql      637 Jul 24 10:08 binlog.000002
-rw-r----- 1 mysql mysql      157 Jul 24 10:08 binlog.000003[root@localhost mysql]# mysqladmin flush-logs -uroot -p
Enter password: [root@localhost mysql]# ll
-rw-r----- 1 mysql mysql     1782 Jul 23 20:33 binlog.000001
-rw-r----- 1 mysql mysql      637 Jul 24 10:08 binlog.000002
-rw-r----- 1 mysql mysql      201 Jul 24 10:11 binlog.000003
-rw-r----- 1 mysql mysql      157 Jul 24 10:11 binlog.000004

2.mysql的日志类型

(1)错误日志

错误日志主要记录:服务器启动和关闭过程中的信息、服务器运行过程中的错误信息、事件调度器运行一个时间时产生的信息、在从服务器上启动从服务器进程时产生的信息。

上表参考位置中,如果没有给定名称和路径,mysqld使用错误日志名host_name.err并在数据目录中写入日志文件。如果日志文件不存在,mysql启动或者执行flush logs时会创建新的日志文件。

查看当前错误日志和是否记录警告设置

mysql8.0 [SLB]>show global variables like '%log_error%';
+----------------------------+----------------------------------------+
| Variable_name              | Value                                  |
+----------------------------+----------------------------------------+
| binlog_error_action        | ABORT_SERVER                           |
| log_error                  | /var/log/mysqld.log                    |
| log_error_services         | log_filter_internal; log_sink_internal |
| log_error_suppression_list |                                        |
| log_error_verbosity        | 2                                      |
+----------------------------+----------------------------------------+
5 rows in set (0.00 sec)mysql8.0 [SLB]>show global variables like '%log_warnings%';
Empty set (0.01 sec)

(2)通用查询日志

记录建立的客户端连接和执行的语句,默认关闭

mysql服务器默认情况下并没有开启通用查询日志。如果需要通用查询日志,可通过修改配置文件来开启:

启动开关:general_log={ON|OFF}

日志文件变量:general_log_file[=/PATH/TO/file]

全局日志开关:log={ON|OFF} 该开关打开后,所有日志都会被启用

记录类型:log_output={TABLE|FILE|NONE},FILE表示将日志存入文件,默认值是FILE;TABLE表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。mysql数据库支持同时两种日志存储方式,配置的时候以逗号隔开。

因此,要启用通用查询日志,需要至少配置general_log=ON,log_output={TABLE|FILE}。而general_log_file如果没有指定,默认名是host_name.log。

查看通用查询日志的设置

mysql8.0 [SLB]>show global variables like '%general%';
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| general_log      | OFF                          |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.01 sec)

可以通过mysql临时设置开启

mysql8.0 [SLB]>set global general_log=on;
Query OK, 0 rows affected (0.01 sec)mysql8.0 [SLB]>show global variables like '%general%';
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| general_log      | ON                           |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.04 sec)

永久开启需要更改my.cnf文件,添加内容

general_log=ON
general_log_file=路径和名称

(3)二进制日志

二进制日志包含关于每个更新数据库的语句的执行时间信息。 它不包含不会修改任何数据的语句,例如select,show等。

二进制日志的主要目的是在数据库存在故障时,恢复时能够最大可能地更新数据库(即时点恢复),因为二进制日志包含备份后进行的所有更新。二进制日志还用于在主复制服务器上记录所有将发送给从服务器的语句。

  • 执行后数据非常大此时基于记录来保存
  • 数据是一些即时的比如时间等,需要基于行就保存记录准确的值
  • 两种方式可能一起搭配使用

查看二进制文件的设置,查看最大大小,也可以在my.cnf中通过"max_binlog_size=xx"指定

在my.cnf中使用log-bin [= file_name]来开启二进制日志,使用skip-log-bin=1来关闭二进制日志

mysql8.0 [SLB]>show variables like '%log_bin%';
+---------------------------------+-----------------------------+
| Variable_name                   | Value                       |
+---------------------------------+-----------------------------+
| log_bin                         | ON                          |
| log_bin_basename                | /var/lib/mysql/binlog       |
| log_bin_index                   | /var/lib/mysql/binlog.index |
| log_bin_trust_function_creators | OFF                         |
| log_bin_use_v1_row_events       | OFF                         |
| sql_log_bin                     | ON                          |
+---------------------------------+-----------------------------+
6 rows in set (0.01 sec)mysql8.0 [SLB]>show variables like 'max_binlog_size';
+-----------------+------------+
| Variable_name   | Value      |
+-----------------+------------+
| max_binlog_size | 1073741824 |
+-----------------+------------+
1 row in set (0.00 sec)

查看二进制日志文件以及当前正使用哪个文件

mysql8.0 [SLB]>show binary logs;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |      1782 | No        |
| binlog.000002 |       637 | No        |
| binlog.000003 |       201 | No        |
| binlog.000004 |       180 | No        |
| binlog.000005 |       778 | No        |
| binlog.000006 |       157 | No        |
+---------------+-----------+-----------+
6 rows in set (0.00 sec)mysql8.0 [SLB]>show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000006 |      157 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

读取二进制日志,mysqlbinlog 查看文件具体内容

mysql8.0 [SLB]>show binlog events in 'binlog.000006';
+---------------+-----+----------------+-----------+-------------+-----------------------------------+
| Log_name      | Pos | Event_type     | Server_id | End_log_pos | Info                              |
+---------------+-----+----------------+-----------+-------------+-----------------------------------+
| binlog.000006 |   4 | Format_desc    |         1 |         126 | Server ver: 8.0.34, Binlog ver: 4 |
| binlog.000006 | 126 | Previous_gtids |         1 |         157 |                                   |
+---------------+-----+----------------+-----------+-------------+-----------------------------------+
2 rows in set (0.00 sec)mysql8.0 [SLB]>show binlog events in 'binlog.000002' from 4;    ---指定从片段4开始查看
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------------------------------------------------------+
| Log_name      | Pos | Event_type     | Server_id | End_log_pos | Info                                                                                                               |
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------------------------------------------------------+
| binlog.000002 |   4 | Format_desc    |         1 |         126 | Server ver: 8.0.34, Binlog ver: 4                                                                                  |
| binlog.000002 | 126 | Previous_gtids |         1 |         157 |                                                                                                                    |
| binlog.000002 | 157 | Anonymous_Gtid |         1 |         234 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                               |
| binlog.000002 | 234 | Query          |         1 |         339 | create database SLB /* xid=18 */                                                                                   |
| binlog.000002 | 339 | Anonymous_Gtid |         1 |         418 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                               |
| binlog.000002 | 418 | Query          |         1 |         593 | use `SLB`; create table t1 ( id int primary key, name varchar(10) not null, dpart char(20) not null) /* xid=261 */ |
| binlog.000002 | 593 | Rotate         |         1 |         637 | binlog.000003;pos=4                                                                                                |
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------------------------------------------------------+
7 rows in set (0.00 sec)/*
Log_name表示当前事件所在的binlog文件名称
Pos当前事件的开始位置,每个事件都占用固定的字节大小
Event_type,在event_type列中,在当前binlog v4版本中,每个binlog文件总是以Format Description Event作为开始,以Rotate Event结束作为结束。Format_desc,也就是我们所说的Format Description Event,是binlog文件的第一个事件Previous_gtids,该事件完整名称为PREVIOUS_GTIDS_LOG_EVENT,是在之前的binlog文件中,已经执行过的GTID。需要我们开启GTID选项,这个事件才会有值。Rotate,Rotate Event是每个binlog文件的结束事件
Server_id表示产生这个事件的mysql server_id,通过设置my.cnf中的server-id选项进行配置。
End_log_position表示下一个事件的开始位置。
Info表示1当前事件的描述信息。
*/[root@localhost mysql]# mysqlbinlog binlog.000006

清空二进制日志文件,删除二进制日志文件

mysql8.0 [SLB]> reset master; ---master表示当前使用的
mysql8.0 [SLB]> purge binary/master logs to '日志';  ---删除此日志之前的所有日志文件
mysql8.0 [SLB]> purge binary/master logs before 'date';  ---删除某个时间之前的所有日志文件

 恢复二进制日志

在数据库出现意外丢失数据时,使用mysqlbinlog工具从指定的时间点开始(比如,最后一次备份)直到如今或者是到另外一个指定的时间点的日志中恢复数据。

  • 创建数据库,创建表,查看当前使用的日志文件和信息
mysql8.0 [(none)]>create database SLB1;
Query OK, 1 row affected (0.02 sec)mysql8.0 [(none)]>use SLB1;
Database changed
mysql8.0 [SLB1]>create table t1 (-> id int primary key,-> name char(20));
Query OK, 0 rows affected (0.04 sec)mysql8.0 [SLB1]>show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)mysql8.0 [SLB1]>show binlog events in 'binlog.000002'\G;
*************************** 1. row ***************************Log_name: binlog.000002Pos: 4Event_type: Format_descServer_id: 1
End_log_pos: 126Info: Server ver: 8.0.34, Binlog ver: 4
*************************** 2. row ***************************Log_name: binlog.000002Pos: 126Event_type: Previous_gtidsServer_id: 1
End_log_pos: 157Info: 
*************************** 3. row ***************************Log_name: binlog.000002Pos: 157Event_type: Anonymous_GtidServer_id: 1
End_log_pos: 234Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
*************************** 4. row ***************************Log_name: binlog.000002Pos: 234Event_type: QueryServer_id: 1
End_log_pos: 339Info: create database SLB /* xid=18 */
*************************** 5. row ***************************Log_name: binlog.000002Pos: 339Event_type: Anonymous_GtidServer_id: 1
End_log_pos: 416Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
*************************** 6. row ***************************Log_name: binlog.000002Pos: 416Event_type: QueryServer_id: 1
End_log_pos: 524Info: create database SLB1 /* xid=257 */
*************************** 7. row ***************************Log_name: binlog.000002Pos: 524Event_type: Anonymous_GtidServer_id: 1
End_log_pos: 601Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
*************************** 8. row ***************************Log_name: binlog.000002Pos: 601Event_type: QueryServer_id: 1
End_log_pos: 741Info: use `SLB1`; create table t1 (
id int primary key,
name char(20)) /* xid=262 */
8 rows in set (0.00 sec)
  • 删除表和数据,并刷新日志
mysql8.0 [SLB1]>drop table t1;
Query OK, 0 rows affected (0.03 sec)mysql8.0 [SLB1]>drop database SLB1;
Query OK, 0 rows affected (0.02 sec)mysql8.0 [(none)]>flush logs;
Query OK, 0 rows affected (0.03 sec)mysql8.0 [(none)]>show databases;
+--------------------+
| Database           |
+--------------------+
| SLB                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
  • 我当前使用的是binlog.000002,就去二进制文件中查看binlog.000002的内容
mysql8.0 [SLB1]>show variables like '%log_bin%';    ---就去/var/lib/mysql下查找
+---------------------------------+-----------------------------+
| Variable_name                   | Value                       |
+---------------------------------+-----------------------------+
| log_bin                         | ON                          |
| log_bin_basename                | /var/lib/mysql/binlog       |
| log_bin_index                   | /var/lib/mysql/binlog.index |
| log_bin_trust_function_creators | OFF                         |
| log_bin_use_v1_row_events       | OFF                         |
| sql_log_bin                     | ON                          |
+---------------------------------+-----------------------------+
6 rows in set (0.00 sec)[root@localhost mysql]# pwd
/var/lib/mysql
[root@localhost mysql]# ll | grep binlog.000002
-rw-r----- 1 mysql mysql     1170 Jul 24 12:57 binlog.000002
[root@localhost mysql]# mysqlbinlog binlog.000002
  • 找到我们删除表或库的那个时间,根据以下命令来恢复
[root@localhost mysql]# mysqlbinlog --stop-datetime="23-07-24 12:56:45" binlog.000002 | mysql -uroot -p

 

  •  查看
mysql8.0 [(none)]>show databases;
+--------------------+
| Database           |
+--------------------+
| SLB                |
| SLB1               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)
Database changed
mysql8.0 [SLB1]>show tables;
+----------------+
| Tables_in_SLB1 |
+----------------+
| t1             |
+----------------+
1 row in set (0.01 sec)

(4)慢日志

记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询,默认关闭

mysql8.0 [SLB]>show variables like "%query_time%";   ---查询超过默认的10s,可成为慢查询
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.05 sec)

MySQL如果启用了 slow_query_log=ON 选项,就会记录执行时间超过long_query_time的查询(初使表锁定的时间不算作执行时间)。my.cnf记录文件为slow_query_log_file[=file_name],如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名,但不是绝对路径名,文件则写入数据目录。

查看慢日志位置和状态

mysql8.0 [SLB]>show variables like '%query_log%';
+------------------------------+-----------------------------------+
| Variable_name                | Value                             |
+------------------------------+-----------------------------------+
| binlog_rows_query_log_events | OFF                               |
| slow_query_log               | ON                                |
| slow_query_log_file          | /var/lib/mysql/localhost-slow.log |
+------------------------------+-----------------------------------+
3 rows in set (0.00 sec)mysql8.0 [SLB]>show variables like 'slow_query_log';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| slow_query_log | OFF   |
+----------------+-------+
1 row in set (0.00 sec)

临时开启慢日志,永久开启同理修改my.cnf文件

mysql8.0 [SLB]>set global slow_query_log=ON;
Query OK, 0 rows affected (0.01 sec)mysql8.0 [SLB]>show variables like 'slow_query_log';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| slow_query_log | ON    |
+----------------+-------+
1 row in set (0.00 sec)

相关文章:

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志 1.日志和备份的必要性 日志刷新 2.mysql的日志类型 (1)错误日志 查看当前错误日志和是否记录警告设置 (2)通用查询日志 查看通用查询日志的设置 (3)二进制日志 查看二进制文件的设置&…...

【Linux】Tcp服务器的三种与客户端通信方法及守护进程化

全是干货~ 文章目录 前言一、多进程版二、多线程版三、线程池版四、Tcp服务器日志的改进五、将Tcp服务器守护进程化总结 前言 在上一篇文章中,我们实现了Tcp服务器,但是为了演示多进程和多线程的效果,我们将服务器与客户通通信写成了一下死循…...

【Spring Cloud】git 仓库新的配置是如何刷新到各个微服务的原理步骤

文章目录 1. 第一次启动时2. 后续直接在 git 修改配置时3. 参考资料 本文描述了在 git 仓库修改了配置之后,新的配置是如何刷新到各个微服务的步骤 前言: 1、假设现有有 3 个微服务,1 个是 配置中心,另外 2 个是普通微服务&#x…...

三,创建订单微服务消费者 第三章

4.3 修改pom添加依赖 <dependencies><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--监控--><dependency><groupId&g…...

【雕爷学编程】Arduino动手做(87)---ULN2003步进电机模组2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…...

【C#】微软的Roslyn 是个啥?

一、说明 Roslyn 是微软重写的C#编译器并开源。 Roslyn 是 C# 和 Visual Basic.NET 开源编译器的代号。以下是它如何在过去十年企业Microsoft的最黑暗中开始&#xff0c;并成为所有C#&#xff08;和VB&#xff09;的开源&#xff0c;跨平台&#xff0c;公共语言引擎&#xff0c…...

两个小封装电机驱动芯片:MLX813XX、A4950

一&#xff0e;MLX813XX MELEXIS的微型电机驱动MLX813XX系列芯片集成MCU、预驱动以及功率模块等能够满足10W以下的电机驱动。 相对于普通分离器件的解决方案&#xff0c;MLX813XX系列电机驱动芯片是一款高集成度的驱动控制芯片&#xff0c;可以满足汽车系统高品质和低成本的要…...

数据结构【绪论】

数据结构入门级 第一章绪论 什么是数据结构&#xff1f;什么是数据类型&#xff1f; 程序数据结构算法 一、基本概念&#xff1a; 数据&#xff1a;指所有能被计算机处理的&#xff0c;无论图、文字、符号等。数据元素&#xff1a;数据的基本单位&#xff0c;通常作为整体考…...

掌握无人机遥感数据预处理的全链条理论与实践流程、典型农林植被性状的估算理论与实践方法、利用MATLAB进行编程实践(脚本与GUI开发)以及期刊论文插图制作等

目录 专题一 认识主被动无人机遥感数据 专题二 预处理无人机遥感数据 专题三 定量估算农林植被关键性状 专题四 期刊论文插图精细制作与Appdesigner应用开发 近地面无人机植被定量遥感与生理参数反演 更多推荐 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多…...

Angular中组件设计需要注意什么?

在 Angular 中设计组件时&#xff0c;有几个重要的方面需要注意。以下是一些建议&#xff1a; 1、单一职责原则&#xff1a;确保每个组件只负责一个明确定义的任务。这有助于保持组件简单、可维护&#xff0c;并且易于重用。 2、组件通信&#xff1a;了解组件之间的通信方式。…...

电容触摸屏(TP)的工艺结构

液晶显示屏(LCM),触摸屏(TP) “GG、GP、GF”这是结构分类&#xff0c;第一个字母表面材质&#xff08;又称为上层&#xff09;&#xff0c;第二个字母是触摸屏的材质&#xff08;又称为下层&#xff09;&#xff0c;两者贴合在一起。 G玻璃&#xff0c;FFILM&#xff0c;“”贴…...

Qt小妙招:如何在可执行文件生成后,在pro文件中添加其他命令操作?

问题描述&#xff1a; 场景1&#xff1a;我的可执行文件设置生成路径为某个最终目录的bin目录下&#xff0c;当我要修改某些config.ini或者xxx.json,或者一些qss&#xff0c;css文件的时候&#xff0c;我想直接在构建的时候&#xff0c;Qtcreator帮我直接拷贝过去&#xff0c;…...

做好防雷检测的意义和作用

防雷检测是指对雷电防护装置的性能、质量和安全进行检测的活动&#xff0c;是保障人民生命财产和公共安全的重要措施。我国对防雷检测行业有明确的国家标准和管理办法&#xff0c;要求从事防雷检测的单位和人员具备相应的资质和能力&#xff0c;遵守相关的技术规范和规程&#…...

计算机启动过程uefi+gpt方式

启动过程&#xff1a; 一、通电 按下开关&#xff0c;不用多说 二、uefi阶段 通电后&#xff0c;cpu第一条指令是执行uefi固件代码。 uefi固件代码固化在主板上的rom中。 &#xff08;一&#xff09;uefi介绍 UEFI&#xff0c;全称Unified Extensible Firmware Interface&am…...

探索容器镜像安全管理之道

邓宇星&#xff0c;Rancher 中国软件架构师&#xff0c;7 年云原生领域经验&#xff0c;参与 Rancher 1.x 到 Rancher 2.x 版本迭代变化&#xff0c;目前负责 Rancher for openEuler(RFO)项目开发。 最近 Rancher v2.7.4 发布了&#xff0c;作为一个安全更新版本&#xff0c;也…...

【MySQL】内置函数

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《零基础入门MySQL》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录 &#x1f449;函…...

使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境

工具 make&#xff1a;Windows中没有make&#xff0c;但是可以通过安装MinGW或者MinGW-w64&#xff0c;得到make。gcc-arm-none-eabi&#xff1a;建议最新版&#xff0c;防止调试报错OpenOCDvscodecubeMX VSCODE 插件 Arm Assembly&#xff1a;汇编文件解析C/C&#xff1a;c…...

图数据库Neo4j学习二——cypher基本语法

1命名规范 名称应以字母字符开头&#xff0c;不以数字开头&#xff0c;名称不应包含符号&#xff0c;下划线除外可以很长&#xff0c;最多65535( 2^16 - 1) 或65534字符&#xff0c;具体取决于 Neo4j 的版本名称区分大小写。:PERSON和:Person是:person三个不同的标签&#xff…...

ChatGPT:人工智能交互的未来之光

一、ChatGPT&#xff1a;开启自然语言交流新纪元 ChatGPT 是基于 GPT&#xff08;生成式预训练&#xff09;技术的最新版本&#xff0c;它采用深度学习模型&#xff0c;通过在大规模文本数据上的预训练来理解自然语言&#xff0c;并生成具有连贯性和合理性的回复。ChatGPT 是一…...

128最长连续数组

题目描述 最长连续序列 https://leetcode.cn/problems/longest-consecutive-sequence/class Solution {public:int longestConsecutive(vector<int>& nums) {unordered_set<int> st(...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...