programing

저장 프로시저를 올바르게 마이그레이션하는 방법

topblog 2023. 8. 26. 10:15
반응형

저장 프로시저를 올바르게 마이그레이션하는 방법

이전 클라이언트 서버에서 새 서버로 사이트를 전송하는 작업을 수행합니다.이전 서버에서 sqdump를 수행하여 새 서버로 가져왔는데 mysqli로 php로 수행된 일부 sqdump를 제외하고는 작동하고 있습니다.

저장 프로시저에 대해 잘 모르지만 실패한 것은 다음과 같은 쿼리입니다.

$db->query("call functionName($id)");

그들은 계속 돌아옵니다.false저장된 절차가 전송되지 않는다고 생각하게 만드는 새 서버입니다.

제가 이것을 조사한 결과 이것이 저장된 절차라고 믿게 되었습니다.하지만 막상 수출하는 방법을 생각해보면 아무 것도 효과가 없습니다.

이전 사이트가 Ubuntu 18.04 / MariaDB 10.3.17에서 실행되고 있습니다. 새 사이트는 Ubuntu 18.04 / MariaDB 10.4.7입니다.

내가 뭘 빼놓았나요?어떤 도움이든 감사할 것입니다, 이것도 제가 사용하는 것과는 조금 다르다고 느낍니다.

편집: sqdump가 매개 변수를 사용하여 어떻게 보이는지 보여주고자 합니다.--routines --no-create-info --no-data --no-create-db --skip-opt

보시다시피 비어 있는데 저장 프로시저/기능이 아닌 다른 기능입니까?

/*!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

저장된 프로시저와 함수들을 다음 msqdump로 전송하여 새 데이터베이스로 가져와야 합니다.

mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt mydb > mydb.sql

이것을 되돌아보는 사람들에게 제 해결책은 DB에 모든 저장 프로시저를 가지고 있는 다른 사용자가 있다는 것이었습니다.그래서 우리는 보관 절차를 볼 수 없었습니다.

사용자를 다시 확인하십시오.

언급URL : https://stackoverflow.com/questions/57402759/how-to-properly-migrate-stored-procedures

반응형