- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图在 mysql 上启用 slow_query_log,但在我的 mac 上找不到它。我读了 MySQL 5.7 Documentation那个”
By default, the server writes files for all enabled logs in the data directory.
当我在 mysql shell 中编写 show variables like '%slow_query%';
时,我看到以下内容:
但我在数据目录中看不到McBook-Pro-6-slow.log
。这是我在数据目录中看到的所有内容:
slow-query-log=1
添加到 my.cnf。在这里,我的问题是我不确定我的 Mac 上的 mysql 配置文件在哪里。我在 usr/local/mysql/support-files/
中找到了一个 my-default.cnf
,在 /等
。我应该修改哪一个??谢谢,
最佳答案
引用这个 Stackoverflow 问题 MySQL 'my.cnf' location?与 Mac OS 有关。如您所见,位置的排列很多,通常由不同的发行版和 MAMP XAMP WAMP bundle 和 Home Brew 混合在一起。一个盒子上有 2 个 mysql 守护进程并且自己都不知道的情况并不少见。
这就是为什么我在评论中建议查看 select @@basedir
的输出以获取 my.ini
(Windows) 或 my.ini 的位置。 cnf
(Linux/Mac)。这并不是说配置文件会在那里,但如果存在配置文件,那应该是在那里。没有它,将使用内置的默认值。通常有一个 stub ,一个建议的文件,命名不同(如 my-default),等待您的调整和重命名或复制到 my.ini
或 my.cnf 的适当文件名
。
还有一个名为 slow_query_log_file
的系统变量,如果通过 SELECT @@slow_query_log_file;
设置它的值可见。现在对我来说,它的值为 GUYSMILEY-slow.log
,因为我没有在我的 ini (Windows) 中设置它,它默认为 computername+"-slow.log"。
那是没有路径的文件名。文件实际写入的位置在 datadir
中,在 select @@datadir;
的输出中可以看到。
在我的系统上这意味着(通过@@basedir
)
C:\Program Files\MySQL\MySQL Server 5.6\my.ini
将有一个设置以写入此绝对路径的慢日志文件结束(由 @@datadir
帮助):
C:\ProgramData\MySQL\MySQL Server 5.6\data\GUYSMILEY-slow.log
并且该日志文件中的片段可能显示如下内容:
Ini 和 cnf 更改需要重新启动 MySQL 守护进程。在该配置文件中有一个类似于(我的 5.6)的部分
[mysqld]
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.6\\
datadir=C:\\ProgramData\\MySQL\\MySQL Server 5.6\\Data\\
port=3306
log_warnings = 2
和(我的 5.7)
[mysqld]
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.7\\
datadir=C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Data\\
port=3307
log_error_verbosity=2
上面的内容在 [mysqld]
部分中用于设置。我的建议是使用像 log_error_verbosity
(5.7.2 及更高版本)或类似的无害设置来玩这个部分,保存它。重新启动守护程序并确定变量是否(如 Rick James 所说的设置,因为大多数实际上是不可动态设置的)。因此,select @@log_error_verbosity
(5.7.2 及更高版本)的健全性检查可以确认更改已被接受。如果是,宾果游戏,你做对了。
手册页 Server System Variables描述变量(设置)以及它们是否可以在通过命令加载配置文件后动态设置/更改。动态更改在守护程序重新启动时恢复。
动态更改变量的方式可能如下所示:
SET GLOBAL log_error_verbosity=2;
同样,只有某些变量在某些 MySQL 版本中可用,例如上面的,在旧版本中不可用。
还要注意在服务器上同时运行的多个版本的 MySQL。我有 5.6.31 和 5.7.14。要通过命令行工具访问不同的一个,请使用类似 -P 3307
的开关指向在端口 3307 上运行的那个。注意大写 P
而不是小写(这意味着提示输入密码)。
确定是否有多个实例正在运行。我使用端口检查,例如
sudo netstat -tulpn (Linux)
netstat -aon | more (Windows, the top part, State=LISTENING)
不幸的是,这些类型的更改和反复试验需要时间并且非常令人沮丧。抱歉,我无法为所有情况提供快速简便的答案。
此处与注释相关的注释。在下面,w-x-y-z
是经过编辑的 IP 地址。
On a Linux box (amazon ec2 redhat btw):
select @@slow_query_log;
-- 0 (so it is turned off)
SELECT @@slow_query_log_file;
-- /var/lib/mysql/ip-w-x-y-z-slow.log
select @@version;
-- 5.7.14
set global slow_query_log=1;
Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation 0.094 sec
(ok I was in MySQL Workbench as a dummied down user, off to do it as root via MySQL cmd line ...
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.01 sec)
mysql> select @@slow_query_log;
+------------------+
| @@slow_query_log |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
btw Workbench user can confirm the above `1`
at shell as linux user:
[ec2-user@ip-w-x-y-z ~]$ cd /var/lib/mysql
[ec2-user@ip-w-x-y-z mysql]$ sudo ls -la
(there were many files, only one needed to show you below)
-rw-r-----. 1 mysql mysql 179 Sep 19 01:47 ip-w-x-y-z-slow.log
[ec2-user@ip-w-x-y-z mysql]$ sudo vi ip-w-x-y-z-slow.log
(Header stub, the entire contents, no slow queries yet, log seen below):
/usr/sbin/mysqld, Version: 5.7.14 (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
关于mysql - 在 mac 上找不到 mysql 慢查询日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39554997/
目前我正在构建相当大的网络系统,我需要强大的 SQL 数据库解决方案。我选择 Mysql 而不是 Postgres,因为一些任务需要只读(MyISAM 引擎)而其他任务需要大量写入(InnoDB)。
我在 mysql 中使用如下命令。当它显示表格数据时,它被格式化为一个非常干净的表格,间距均匀且 |作为列分隔符。 SELECT * FROM TABLE_NAME; 当我从 CLI 运行命令时,如下
我知道这个问题之前已经被问过好几次了,我已经解决了很多问题,但到目前为止没有任何效果。 MySQL 试图将自身安装到的目录 (usr/local/mysql) 肯定有问题。关于我的错误的奇怪之处在于我
以下是我的 SQL 数据结构,我正在尝试如下两个查询: Select Wrk_ID, Wrk_LastName, Skill_Desc from Worker, Skill where
我们有一个本地 mysql 服务器(不在公共(public)域上),并希望将该服务器复制到我们拥有的 google 云 sql 实例。我的问题是:1.这可能吗?2.我们的本地服务器只能在本地网络上访问
我有一个表(test_table),其中一些字段值(例如字段 A、B 和 C)是从外部应用程序插入的,还有一个字段(字段 D),我想从现有表(store_table)插入其值,但在插入前者(A、B 和
我想创建一个 AWS RDS 实例,然后使用 terraform 管理数据库用户。因此,首先,我创建了一个 RDS 实例,然后使用创建的 RDS 实例初始化 mysql 提供程序,以进一步将其用于用户
当用户在我的网站上注册时,他们会在我的一个数据库中创建自己的表格。该表存储用户发布的所有帖子。我还想做的是也为他们生成自己的 MySql 用户——该用户仅有权从他们的表中读取、写入和删除。 创建它应该
我有一个关于 ColdFusion 和 Mysql 的问题。我有两个表:PRODUCT 和 PRODUCT_CAT。我想列出包含一些标记为:IS_EXTRANET=1 的特殊产品的类别。所以我写了这个
我想获取 recipes_id 列的值,以获取包含 ingredient_id 的 2,17 和 26 条目的值。 假设 ingredient_id 2 丢失则不获取记录。 我已经尝试过 IN 运算符
在 Ubuntu 中,我通常安装两者,但 MySQL 的客户端和服务器之间有什么区别。 作为奖励,当一个新语句提到它需要 MySQL 5.x 时,它是指客户端、服务器还是两者兼而有之。例如这个链接ht
我重新访问了我的数据库并注意到我有一些 INT 类型的主键。 这还不够独特,所以我想我会有一个指导。 我来自微软 sql 背景,在 ssms 中你可以 选择类型为“uniqeidentifier”并自
我的系统上有 MySQL,我正在尝试确定它是 Oracle MySQL 还是 MySQL。 Oracle MySQL 有区别吗: http://www.oracle.com/us/products/m
我是在生产 MySQL 中运行的应用程序的新维护者。之前的维护者已经离开,留下的文档很少,而且联系不上了。 我面临的问题是执行以下请求大约需要 10 秒: SELECT COUNT(*) FROM `
我有两个位于不同机器上的 MySQL 数据库。我想自动将数据从一台服务器传输到另一台服务器。比方说,我希望每天早上 4:00 进行数据传输。 可以吗?是否有任何 MySQL 内置功能可以让我们做到这一
有什么方法可以使用 jdbc 查询位于 mysql 根目录之外的目录中的 mysql 表,还是必须将它们移动到 mysql 根目录内的数据库文件夹中?我在 Google 上搜索时没有找到任何东西。 最
我在 mysql 数据库中有两个表。成员和 ClassNumbers。两个表都有一个付费年份字段,都有一个代码字段。我想用代码数字表中的值更新成员表中的付费年份,其中成员中的代码与 ClassNumb
情况:我有 2 台服务器,其中一台当前托管一个实时 WordPress 站点,我希望能够将该站点转移到另一台服务器,以防第一台服务器出现故障。传输源文件很容易;传输数据库是我需要弄清楚如何做的。两台服
Phpmyadmin 有一个功能是“复制数据库到”..有没有mysql查询来写这个函数?类似于将 db A 复制到新的 db B。 最佳答案 首先创建复制数据库: CREATE DATABASE du
我有一个使用 mySQL 作为后端的库存软件。我已经在我的计算机上对其进行了测试,并且运行良好。 当我在计算机上安装我的软件时,我必须执行以下步骤: 安装 mySQL 服务器 将用户名指定为“root
我是一名优秀的程序员,十分优秀!