问: 如果密码中包含反斜线,该如何处理呢?
答: 在mysql中,反斜线"\"是有特殊意义的,用于转义,因此如果密码中包含"\",就需要特别注意。有一种一劳永逸的办法,就是在密码中不用反斜线,哈哈。另一种,那就是需要多加几个反斜线,例如:
(root:hostname:Thu Oct 15 09:15:38 2009)[mysql]> grant usage on *.* to yejr@localhost identified by 'ye\\\jr';
Query OK, 0 rows affected (0.02 sec)
(root:imysql.cn:Thu Oct 15 09:16:22 2009)[mysql]> select password('ye\jr');
+-------------------------------------------+
| password('ye\jr') |
问题
环境
硬件:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram
软件:2.6.9-55.ELsmp x86_64, mysql 5.1.x
现象
2个库,其中1个业务库下有20多个表,表文件大小总量不到2G。
另一个为日志库,下400多个表,大致是每天会产生5个表,其中有一个表较大,约400MB,总量约40多GB。
每次备份耗时较长,最严重的一次花了5个多小时才完成。
业务库为当前活动库,日志库则主要用作备份,每天日志归档,过期数据表很少有读写请求。
问题:
执行 show engine innodb status\G 时,显示的信息不全,DEADLOCK相关信息太多,后面的都没了
原因:
这是mysql客户端的一个bug:BUG#19825,交互式客户端限制了输出信息最大为 64KB,因此更多的信息无法显示。
mysqlslap是官方提供的压力测试工具之一,官方介绍如下:
mysqlslap is a diagnostic program designed to emulate client load for a MySQL server and to report the timing of each stage. It works as if multiple clients are accessing the server. mysqlslap is available as of MySQL 5.1.4.
原文参见:http://pento.net/2009/04/16/extracting-a-database-from-a-mysqldump-file/
直接用 sed 命令从一个mysqldump备份出来的标准 SQL 文件中提取出特定数据库下的所有 SQL 语句:
sed -n '/^-- Current Database: `test`/,/^-- Current Database: `/p' fulldump.sql > test.sql
上面的例子是把 test 库下所有的 SQL 语句都提取出来。
这种方法适合dump文件相对较小的情况,否则可能需要处理很长时间,而且一定不能用在线服务的机器处理,搞不好会因为内存不够用导致其他应用程序crash的,谨慎。
原文参考:http://www.davidodwyer.com/category/tags/tcpdump-mysql
#!/bin/bash
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
if (defined $q) { print "$q\n"; }
$q=$_;
} else {
$_ =~ s/^[ \t]+//; $q.=" $_";
}
}'
可以根据自己的需要稍微改改,我在这里只增加了对 CALL 关键字。
其实很简单,就是利用linux下的 watch 工具来做监控,方法如下:
[yejr@localhost imysql]# watch -d -n 10 "egrep 'MySQL thread|Log|Modified db pages' innodb_status.3249 " Every 10.0s: egrep 'MySQL thread|Log|Modified db pages' innodb_status.3249 Thu Apr 9 10:01:12 2009
原文参考:http://www.xaprb.com/blog/2009/03/25/mysql-command-line-tip-compare-result-sets/
利用mysql客户端的pager功能即可:
mysql> pager md5sum - PAGER set to 'md5sum -' mysql> select * from user; b20bd3864962507e2e05cd8706440ffd - 3 rows in set (0.00 sec) mysql> select * from user; b20bd3864962507e2e05cd8706440ffd - 3 rows in set (0.00 sec) mysql> select * from user; b20bd3864962507e2e05cd8706440ffd - 3 rows in set (0.00 sec)
还不错吧,哈哈
为什么Mysql状态中打开的表超过我系统中所有的表加起来的总和
来源: http://www.imysql.cn/blog/3208 & http://www.imysql.cn/
作者:吴炳锡
如:
Threads: 1 Questions: 1044 Slow queries: 4 Opens: 49 Flush tables: 1 Open tables: 44 Queries per second avg: 0.004
而实际表加起来有可能不到20个表。
MySQL为什么打开那么多表呢?
原因:
最近评论
1 小时 21 分钟 前
18 小时 17 分钟 前
2 天 50 分钟 前
2 天 53 分钟 前
3 天 4 小时 前
1 周 2 天 前
1 周 2 天 前