日期:2014-05-16  浏览次数:20772 次

MySQL中Length函数,求得结果不得超过1024???
1. 想通过把length函数通过查询语句统计某个单位(单个数据库中有N个单位)的数据量大小,结果使用Lengt函数时,最大长度就是1024,超过了计算不了。用bit_length也有最大值限制8096。请问用什么方法比较好呢?


PS: 此外还有两个问题,
2. 为什么我附加数据库时,提示 TRIGGER command denied to user 'root'@'192.168.10.20' ,我是用root@localhost用户登录的,root@% 和root@localhost都是 all privileges 最高权限。
3. 还原数据库成功后,Trigger看不见,远程连接其他服务器数据为时,也看不见。登录用户都有最高权限。

------解决方案--------------------
1绝对没长度限制
mysql> select length(repeat('a',10000));
+---------------------------+
| length(repeat('a',10000)) |
+---------------------------+
| 10000 |
+---------------------------+
1 row in set (0.00 sec)

2 show grants for 'root'@'192.168.10.20';看一下权限
3 手动拷贝一个trigger定义过来试试执行
------解决方案--------------------
1) LENGTH 没有听说有限制。 建议给出你的测试用例

2) show grants ; 显示一下你的用户。应该是 'root'@'192.168.10.20' ,
 然后再显示一下 select * from mysql.user where user='root';
贴出以上信息以供分析。

3) TRIGGER备份的时候要加上 -R参数,否则不会被备份。
------解决方案--------------------
1、length没有长度限制。
2、关键是权限 show grants.
select * from mysql.user where user='root';
3、触发器或者存储过程不加-R备份的时候是不备份的。
------解决方案--------------------
你的代码是什么
MYSQLDUMP -uroot --all-databases --add-drop-database -B -E -R -p >123.TXT

2、检查什么用户登录及相应权限
------解决方案--------------------
引用mysqldump -h localhost -uroot -proot --add-lock --lock-tables -r --database sy_erp >c:\20120725-2.sql