我在一个虚拟私人服务器(Linux)上有一个WHM/Cpanel重新卖家托管帐户。
我可以通过SSH访问这台机器
我正在试图找到一个包含信息的文件,这些信息将帮助我确定哪些用户访问了什么db和哪个主机。
我可以想象这种数据存储在某个日志文件中。
MySQL页面上写着:
The general query log - Established client connections and statements received from clients
请参阅:http://dev.mysql.com/doc/refman/5.0/en/server-logs.html
它还说:
By defau
在Docker文档中,有以下与docker-compose.yml文件的volumes部分相关的示例:
volumes:
# (1) Just specify a path and let the Engine create a volume
- /var/lib/mysql
# (2) Specify an absolute path mapping
- /opt/data:/var/lib/mysql
# (3) Path on the host, relative to the Compose file
- ./cache:/tmp/cache
# (4
我如何知道哪些MySQL用户有访问数据库的权限,以及他们拥有哪些特权?
当我点击“特权”时,我似乎能够从phpMyAdmin获得这些信息。。。
Users having access to "mydatabase"
User Host Type Privileges Grant
myuser1 % database-specific ALL PRIVILEGES Yes
root localhost global
我有一些将在MySQL表上运行用户生成的SQL的PHP代码。查询的可能性是有限的,但可能是,例如
SELECT City, Country, count(*) FROM Table ... GROUP BY City, Country
或
SELECT count(*) AS Count, Role, Country FROM Table ... GROUP BY Role, Country
或
SELECT count(*), TicketType, City, SUM(Quantity) AS 'Total Quantity' FROM Table ... GROUP BY
我们得到的错误是主机在MySQL上被阻塞了
Host 'host_name' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
我了解如何清除此错误(刷新主机),
然而,我们是一个共享的托管公司,并想知道哪些数据库连接失败,以纠正问题,并通知客户。我们有许多数据库和许多客户网站。
我们正在运行MySQL 5.5 -因此“主机缓存”表不存在(不确定这是否会有帮助)
我想有一个脚本,显示谁是登录到我的服务器通过MySQL的用户。现在我使用
show processlist;
并手动打开每个斑点以查看哪些条目对应于服务器本身、哪些条目对应于机器人、哪些条目对应于非活动用户等等。但是一定有更好的方法!
我想象的是一个Perl脚本,但也许还有更好的方法。当然,想知道谁登录了并不少见--有什么标准的工具吗?
在我们的数据库(RDS上的MySQL 5.6.22 )中,有许多事务(~500)处于负载下的“清理”状态:
> SHOW ENGINE innodb STATUS;
...
------------
TRANSACTIONS
------------
...
---TRANSACTION 70150348714, not started
MySQL thread id 132590, OS thread handle 0x2b2a712ca700, query id 10842420427 <ip> <user> cleaning up
...
我发现的唯一信息是
我有一个名为User的MySQL表,其中userid是主键。当有人试图删除用户时,我需要查看该用户是否被其他表引用。我不想做一打不同的查询,想知道是否有一些information_schema级别的检查。
我知道您可以找到哪些表引用了一列,但是有没有办法添加引用了哪些记录呢?
要获取哪些表引用了此表/列
SELECT *
FROM
information_schema.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'User'
AND REFERENCED_COLUMN_NAME = 'userid';
我对MySQL show processlist很熟悉。MySQL中的show processlist语句向您显示哪些线程正在运行,当您收到"too many“错误消息并想要找出发生了什么情况时,它会很有用。此外,MySQL show processlist还输出以下列: Id、用户、主机、数据库、命令、时间、状态和信息(请参见)。那么,根据MySQL show processlist的上述功能,MySQL show processlist和TiDB show processlist有什么不同
这些操作中哪些应该在MySQL中执行得更快?假设我有999个值要更改:
DELETE FROM table WHERE id IN(100, ..., 999);
INSERT INTO example VALUES (100, 'Peter'), (...), (999, 'Sam');
或
UPDATE table_name SET name='Peter'
WHERE person_id=100; ...; UPDATE table_name SET name='Sam' WHERE person_id=999;