【发布时间】:2019-08-07 21:56:24
【问题描述】:
我的任务是将站点从旧客户端服务器转移到新服务器。我已经从旧服务器完成了一个 sqldump 并导入到新服务器中,除了在 php 中使用 mysqli 完成的一些 sql 调用外,它正在工作。
我对存储过程不太熟悉,但我注意到失败的查询如下所示:
$db->query("call functionName($id)");
他们在新服务器上不断返回false,这让我觉得存储过程没有转移。
我对此的调查使我相信这是一个存储过程。但是,当我查看导出它的方法时,它没有任何作用。
旧站点在 Ubuntu 18.04 / MariaDB 10.3.17 上运行 新站点是 Ubuntu 18.04 / MariaDB 10.4.7
我错过了什么吗?任何帮助将不胜感激,感觉这有点不符合我的习惯。
编辑:想用参数--routines --no-create-info --no-data --no-create-db --skip-opt显示sqldump的样子
你可以看到它是空的,那么它是不是存储过程/函数以外的其他东西?
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Dumping routines for database 'database_name'
--
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-08-07 17:33:52
【问题讨论】:
-
mysqldump 上的--routines parameter 对你不起作用?
-
不,没有,当我将它导入新服务器时,它仍然显示错误
Uncaught Error: Call to a member function fetch_assoc() on boolean -
您可以使用phpmyadmin 或CLI 之类的东西来执行
SELECT即list stored procedures and functions in MariaDB database。这是否显示任何例程?