我正在测试一些东西,并添加了一个:
grant usage on statistics.* to cptnotsoawesome@localhost identified by 'password';
Run Code Online (Sandbox Code Playgroud)
所以现在当我做
show grants for cptnotsoawesome@localhost;
Run Code Online (Sandbox Code Playgroud)
我可以看到其中之一是:
Grants for cptnotsoawesome@localhost
----------------------------------
GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring'
Run Code Online (Sandbox Code Playgroud)
现在我想删除它,因为我认为它存在安全隐患,所以我这样做:
REVOKE USAGE ON *.* FROM 'cptnotsoawesome'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
但它仍然显示授权列表中的USAGE grant。
Grants for cptnotsoawesome@localhost
----------------------------------
GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring'
Run Code Online (Sandbox Code Playgroud)
任何想法为什么?我究竟做错了什么?
我正在优化我们的数据库。本质上,我试图在我们的数据库中找到写入次数最多和读取次数最多的表。之后,我将把这些表符号链接到单独的驱动器中。
有没有办法跟踪每个表的活动?如下所示,每个表的 IOPS、写入、读取?
你通常如何预热你的数据库?
我对数据库中的每个表运行类似的查询:
SELECT * FROM ip_log ORDER BY ID;
SELECT ip, member_id FROM ip_log ORDER BY ip, member_id;
Run Code Online (Sandbox Code Playgroud)
这是最好的方法,还是有更酷的方法?
我知道有可能拥有一个包含许多表/数据库的单个数据库服务器,并且您可以将其中一些表/数据库分离到单独的磁盘中。假设您有 5 个表/数据库和 5 个驱动器。因此,您将每个表/数据库附加到不同的驱动器。从而增加 IO 和其他一切。
那个技术叫什么?
我认为如果您尝试分离数据库,您只需将不同的驱动器安装到不同数据库的不同文件夹,但是如果您想将表分离到不同的驱动器(每个表在不同的磁盘中)怎么办
我的复制服务器遇到了问题。本质上,我们有 2 个数据库(database1 和 database2)。主服务器两者都有。从站只有database1。有一个
Replicate_Do_DB: database1
Run Code Online (Sandbox Code Playgroud)
在 CHANGE MASTER TO 配置中设置。
现在发生的事情是 - 我们正在使用代码点火器,其中一位程序员创建了 database2 并开始向其中插入信息。代码点火器将默认数据库设置为 database1。现在结果是他生成的每个查询 - 我在 SHOW SLAVE STATUS\G 上收到错误:
Error 'Table 'database2.tbl40' doesn't exist' on query. Default database: 'database1'. Query: 'INSERT INTO `database2`.`tbl40` (`date`, `day`) VALUES ('2011-04-26', '2011-04-26')'
Run Code Online (Sandbox Code Playgroud)
所以基本上,我后来解决了这个问题,但复制不起作用,因为大约有 1000 个查询会为复制服务器产生该错误。
我的问题是 - 有没有办法从二进制日志中清除这样的查询?或者我需要编写一个脚本来执行
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Run Code Online (Sandbox Code Playgroud)
对于每个产生和错误的查询?
有没有办法让 MySQL 慢日志每天启动新的日志文件?目前它只是一个大文件,并且每天都必须grep行。为每一天的慢日志设置单独的文件会方便得多。
我是否必须配置 my.cnf 或某些 linux 功能?
我现在一直在网上查找,似乎找不到禁用此命令的选项。我认为这是一个相当危险的安全漏洞。
有一个选项可以禁用SHOW DATABASES;
,但没有SHOW TABLES;
也许你们中的一些人曾经
mysql ×7
innodb ×1
myisam ×1
optimization ×1
performance ×1
permissions ×1
replication ×1
scalability ×1
slow-log ×1