MYSQL 问题
(1)mysql server has gone away
导数据时,如果脚本太大,会执行中断,这时需要修改最大允许包的大小:
set global max_allowed_packet=1024*1024*16;
(2)函数
a.创建
delimiter $$
CREATE DEFINER=`yun_aged_test2`@`%` FUNCTION `GetDistrictName1`(`DistrictID` int) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE DistrictName varchar(255) DEFAULT ''; SELECT area_name into DistrictName from sys_area WHERE area_id = DistrictID; RETURN DistrictName;
END $$
b.显示所有函数
show function status;
c.查看定义
show create function GetDistrictName;
(3)远程拷贝的本地Mysql的储存过程,报错:[Err] 1449 - The user specified as a definer ('admin_isbox'@'localhost') does not exist
凭借以前经常见到的root@localhost报错,给root赋值所有权限:
grant all privileges on *.* to root@"%" identified by ".";
flush privileges;
发现无效。
可能数据库没有此用户:
select user,host from mysql.user;
没找到此用户,但是报错出现了这个用户。寻求谷歌后,找到解决方法:
SELECT definer,type FROM mysql.proc GROUP BY definer,type;
UPDATE mysql.proc SET definer='root@localhost' WHERE definer = '*username*@localhost';
重启数据库,OK