Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在Linux命令提示符下使用存储过程_Mysql_Linux_Shell - Fatal编程技术网

Mysql 如何在Linux命令提示符下使用存储过程

Mysql 如何在Linux命令提示符下使用存储过程,mysql,linux,shell,Mysql,Linux,Shell,我想更改服务器计算机中的存储过程。我正在通过SSH Linux命令提示符上载代码,我需要更改服务器中现有的存储过程。我没有c-panel或php Myadmin访问权限。我必须通过命令提示符更新它 存储过程: DELIMITER $$ USE `dbname`$$ DROP PROCEDURE IF EXISTS `add_data`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `add_data`( f_id INT(11),

我想更改服务器计算机中的存储过程。我正在通过SSH Linux命令提示符上载代码,我需要更改服务器中现有的存储过程。我没有c-panel或php Myadmin访问权限。我必须通过命令提示符更新它

存储过程:

DELIMITER $$

USE `dbname`$$

DROP PROCEDURE IF EXISTS `add_data`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `add_data`(
    f_id INT(11), 
    f_guild_parentid INT(11),OUT lastid INT
    )
BEGIN
     INSERT INTO zid_tabename
         (
         id,
         character_detail_id,
         media_id,
         )
         VALUES 
         ( 
         f_id,
         f_character_detail_id,
         f_media_id,
         NOW() ,
         NOW() 
          );
          SET lastid = LAST_INSERT_ID();
    END$$

DELIMITER ;

我需要命令来执行此操作。任何人都可以给我一个示例命令。

只需将该脚本放在一个文件中,并通过mysql命令行从任何服务器上运行它,您要运行的用户可以从该服务器上进行访问

mysql -h {hostname} -u {username} -p{password} {database} < /path/to/script
mysql-h{hostname}-u{username}-p{password}{database}

显然,您必须在运行的服务器上安装mysql客户端软件包。

答案中没有提到数据库名称,它将如何将脚本放入数据库。@user2681579是。你需要把它放在里面。我更新了答案以反映DB命名。我只是省略了这一部分。我们也可以使用“mysql>source/path/to/text\u file.sql”