版本:mysql8.0 开启日志 show global variables like '%general_log%'; set global general_log = 'on'; 开日慢查询日志 show...global variables like '%slow_query_log%'; set global slow_query_log= 'on'; 日志记录形式 log_output=’FILE’...表示将日志存入文件,默认值是FILE, log_output=’TABLE’表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。...show global variables like '%log_output%'; 配置文件中开启日志 修改mysql的配置文件my.cnf,重启数据库,可持久化生效,但不建议一直开启日志记录,只在查问题的时候开启...,方便排查,用完关闭日志记录,它会占用较多存储。
Laravel 默认只在sql语法错误时提示完整的sql日志,但实际情况接口慢,筛选条件和预期不符等,都需要看到sql语句,通过sql语句判断问题所在 下面介绍实现方式 第一步 修改 AppServiceProvider.php.../', (string) $value, $sql, 1); } $sql = sprintf('【%s】 %s...', $this->format_duration($query->time / 1000), $sql); Log::channel('sql')->debug($sql...'s'; } } 第二步 修改 config/logging.php 增加sql日志开关 /** * 开启sql日志 */ 'enable_log_sql'...=> env('LOG_SQL_ENABLED', true), 日志默认输出到 storage/logs/laravel.log文件,为了区分开,增加以下配置 'sql'
一.mysql二进制日志 配置如下: log-bin = /path/mysql-bin #其记录日志文件名为mysql-bin.index,mysql-bin.000001(注:重启或者单个文件超出限制会...like 'log_%'; #查看日志设置 查看二进制日志 show binary logs; #查看日志文件个数与文件名 mysqlbinlog filename #查看二进制文件内容 删除二进制日志...reset master; #删除全部二进制日志 二进制日志恢复文件 mysqlbinlog [--start-date="Y-m-d" --stop-date="Y-m-d"] filename |...mysql -uroot -ppass 二、错误日志 配置如下: log-error = /path/error.log 查看状态 show variables like 'log_error'; 删除错误日志...配置如下: slow_query_log = ON slow_query_log_file = /path/slow-query.log long_query_time = 10 #超过10秒会记录 删除错误日志
实现golang连接MySQL数据库导入执行一个sql文件 package tools import ( "fmt" _ "github.com/go-sql-driver/mysql...文件不存在:", err) return err } dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?...Local", this.Username, this.Password, this.Server, this.Port, this.Database) db, err := gorm.Open("mysql...:= range sqlArr { sql = strings.TrimSpace(sql) if sql == "" { continue...} err := db.Exec(sql).Error if err !
***********在mysql命令行下执行sql文件*********** ***********在mysql命令行下执行sql文件*********** C:\Windows\system32>...cd E:\MySQL\mysql-5.7.16-winx64\bin //将目录切换到mysql的bin文件所在的目录 C:\Windows\system32>mysql -uroot -p520462...-Dtest<E:\test.sql //mysql -u账号 -p密码 -D数据库名 < sql文件绝对路径 mysql: [Warning] Using a password on the command...> source E:\test.sql //mysql控制台下执行source E:\test.sql Database changed ERROR: No query specified +-...> \. e:\test.sql // \. e:\test.sql Database changed ERROR: No query specified +------+--
***********在mysql命令行下执行sql文件*********** ***********在mysql命令行下执行sql文件*********** C:\Windows\system32>cd...E:\MySQL\mysql-5.7.16-winx64\bin //将目录切换到mysql的bin文件所在的目录 C:\Windows\system32>mysql -uroot -p520462...-Dtest<E:\test.sql //mysql -u账号 -p密码 -D数据库名 < sql文件绝对路径 mysql: [Warning] Using a password on the command...> source E:\test.sql //mysql控制台下执行source E:\test.sql Database changed ERROR: No query specified +-...> \. e:\test.sql // \. e:\test.sql Database changed ERROR: No query specified +------+--
最近遇到一对需要执行的sql文件,sql文件内是insert 语句。...但是实施人员给过来的sql文件,一张表的数据根据数据量硬生生生成了近10个文件。文件多了,若手动执行,很容易出现遗漏或者重复操作,造成错误。 由于文件内结构比较单一,故用脚本实现。...代码如下: def execute_sql(conn, cur, path=r"D:\个人"): """执行指定目录下的.sql文件""" os.chdir(path) for...count = 1 # 当读取完毕文件,不到2000行时,也需对拼接的sql 执行、提交 if sql:...cur.execute(sql) conn.commit() 以上execute_sql函数,会默认执行入参path路径下,所有文件名包含“.sql”文件。
mysql日志文件的查询方法: 查找错误日志文件路径show variables like ‘log_error’; 在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。...默认情况下错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中的信息(未必是错误信息,如mysql如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、服务器运行过程中的错误信息、...日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。...慢查询日志文件路径show variables like ‘slow_query_log_file’; 慢查询日志是用来记录执行时间超过指定时间的查询语句。...通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句。可以帮助我们定位性能问题的。
# 背景 用例执行完毕,期望回滚数据,因此希望执行sql来回滚数据 # 步骤 直接show代码,借助的是mybatis的ScriptRunner /** * 执行xx库下的表备份脚本...runner.setAutoCommit(true); String fileName = String.format("src/main/resources/db/%s.sql...File file = new File(fileName); try { if (file.getName().endsWith(".sql...runner.setDelimiter(";");//语句结束符号设置 runner.setLogWriter(null);//日志数据输出
连接到mysql: mysql -u用户名 -p用户密码 2. 在MySQL下执行: source /home/jiangxingqi/DB/hello world.sql
假如某个数据库被人删除了,但是拥有数据库权限的人很多,这样有必要记录下每个人的操作纪律。但是如果开启了general log的话,日志又非常大。 下面的使用init_connect的方法还不错。...登录进mysql,创建一个日志表 > create database accesslog; > use accesslog; > CREATE TABLE `accesslog` (`id` int(11...mysqld]添加 init_connect='insert into accesslog.accesslog values (connection_id(),user(),now());' 将配置持久化到文件...root用户进去查看操记录: > select * from accesslog.accesslog; 类似如下: ?...再结合accesslog.accesslog里面的记录,可以看到是下图这个时间点登录的账户操作的。这样就有据可查。 ?
1.ssh连接mysql 命令:mysql -h 127.0.0.1 -u root -p dbname 2.回车 输入密码 连接到mysql 3.查询log是否开启 命令:show variables...like 'general_log%'; 显示如下:说明已经开启了通用日志 ?...如果general_log的值是OFF,则没有开启,此时需要开启 4.开启日志 命令: #/var/lib/mysql/localhost.log 输出的日志文件 SET GLOBAL general_log_file...= '/var/lib/mysql/localhost.log'; SET GLOBAL general_log = 'ON';
现在越来越多人用plsql 查询和执行sql,因为该工具很方便,不仅可以执行sql、以及命令窗口,但是呢,有时候我们执行完sql,可能忘记保存或者当时觉得可能不怎么重要,就没有保存, 等到了第二天或者过段时间...,想看看之前执行的sql,这时候怎么办呢?...首先打开sql窗口,如图所示 ? 然后,按住 CTRL+E,就会显示之前执行过的sql语句啦 ?...但是显示的好像只有最近200条的,,所以大家在执行sql 的时候,最好还是每天可以备份一下自己执行过的sql语句,毕竟好记性不如烂笔头
SQL的执行顺序事实上,sql并不是按照我们的书写顺序来从前往后、左往右依次执行的,它是按照固定的顺序解析的,主要的作用就是从上一个阶段的执行返回结果来提供给下一阶段使用,sql在执行的过程中会有不同的临时中间表...t.mobile having count(*)>2 order by s.create_time limit 5;1、from 第一步就是选择出from关键词后面跟的表,这也是sql...执行的第一步:表示要从数据库中执行哪张表。...通过from 和 join on 选择出需要执行的数据库表T和S,产生笛卡尔积,生成T和S合并的临时中间表Temp1。...实例说明:在temp7中排好序的数据,然后取前五条插入到Temp9这个临时表中,最终返回给客户端ps:实际上这个过程也并不是绝对这样的,中间mysql会有部分的优化以达到最佳的优化效果,比如在select
创建sh后缀文件: touch test.sh #!.../bin/sh user=root pass="123456" db=test tablename=ts mysql -u$user -p$pass -D $db < /usr/local/crontab.../sqlFile/test.sql 编辑定时任务 crontab -e 0 4 * * * /bin/sh /usr/local/crontab/test.sh 发布者:全栈程序员栈长,转载请注明出处:
创建sh后缀文件: touch test.sh #!.../bin/sh user=root pass="123456" db=test tablename=ts mysql -u$user -p$pass -D $db < /usr/local/crontab.../sqlFile/test.sql 编辑定时任务 crontab -e 0 4 * * * /bin/sh /usr/local/crontab/test.sh
上次修改过root密码之后,刚启动,执行sql就报错了。...错误是: Reset MySQL root password using ALTER USER statement after install on Mac 解决办法是: https://stackoverflow.com.../questions/33467337/reset-mysql-root-password-using-alter-user-statement-after-install-on-mac ----
MySQL 8.0 SQL 执行流程首先我们先来看下 MySQL 的经典架构图,8.0 的没怎么翻到,先看看这个了。...Optimzer优化器,将 SQL 进行优化生成多个执行计划。执行器上面优化器生成了多份执行计划后,接下来就由执行器选择一份计划执行了。...执行器先会判断当前是否具有权限,然后才会去执行相应的 SQL 语句。Caches缓存命中,8.0 中已经被干掉了。...比如他是将 SQL 语句作为 key 进行命中匹配的,如果 SQL 中多加了一个空格也会被认为不是同一条 SQL 导致匹配不到。Pluggable storage Engines数据库的执行引擎插件。...文件系统这个是存放 MySQL 的文件系统。SQL 执行流程SQL 流程是 SQL --> 解析器 --> 优化器 --> 执行器 --> 返回结果。下面会将各个组件单独拉出来做分析。
在SQL语句中每个关键字都会按照顺序往下执行,而每一步操作,会生成一个虚拟表,最后产生的虚拟表会作为执行的最终结果返回。下面的是常用的关键字的执行顺序: ?... 1、FROM:对FROM左边的表和右边的表计算笛卡尔积,产生虚表VT1; 2、ON:对虚拟表VT1进行ON筛选,只有那些符合条件的行才会被记录在虚拟表...6、CUBE|ROLLUP:对虚拟表VT5进行CUBE或者ROLLUP操作,产生虚拟表VT6; 7、HAVING:对虚拟表VT6进行HAVING条件过滤,只有符合的记录才会被插入到虚拟表...VT7中; 8、SELECT:执行SELECT操作,选择指定的列,插入到虚拟表VT8中; 9、DISTINCT:对虚拟表VT8中的记录进行去重,产生虚拟表VT9; 10、ORDER BY:将虚拟表VT9...中的记录按照进行排序操作,产生虚拟表VT10; 11、LIMIT:取出指定行的记录,产生虚拟表VT11,并将结果返回。
有的时候,需要知道近段时间SQLSERVER执行了什么语句,可以用下面的方法: SELECT TOP 1000 QS.creation_time, SUBSTRING(ST.text, (QS.statement_start_offset...QS.max_worker_time, QS.min_worker_time FROM sys.dm_exec_query_stats QS CROSS APPLY sys.dm_exec_sql_text...(QS.sql_handle) ST WHERE QS.creation_time BETWEEN '2017-09-09 10:00:00' AND '2017-09-11 18:00:00'
领取专属 10元无门槛券
手把手带您无忧上云