首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP \ mysql命令返回sh:-c:第0行:意外标记“`newline”附近的语法错误

问PHP \ mysql命令返回sh:-c:第0行:意外标记“`newline”附近的语法错误
EN

Stack Overflow用户
提问于 2022-05-11 09:38:44
回答 2查看 174关注 0票数 0

我想对DB进行多次插入,但是mysql命令返回我:sh:-c:第0行:在未预料到的令牌“换行符”附近的语法错误。

有人知道这个错误意味着什么吗?

这是我的命令:

代码语言:javascript
复制
mysql -h 127.0.0.1 -D db_name -u username --password=pass --debug-info true <shared/local_sql/3.sql>

SQL文件示例:

代码语言:javascript
复制
DELETE FROM table_name WHERE num = '999999';
START TRANSACTION;
INSERT INTO table_name SET key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = '', key1 = '', key1 = 'val1', num = '999999';
INSERT INTO table_name SET key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = '', key1 = '', key1 = 'val2', num = '999999';
COMMIT;
UPDATE table_name SET num = '999998' WHERE num = '2';
UPDATE table_name SET num = '2' WHERE num = '999999';
DELETE FROM table_name WHERE num = '999998' OR num = '999999';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-11 10:05:21

使用

代码语言:javascript
复制
mysql -h 127.0.0.1 -D db_name -u username --password=pass --debug-info true shared/local_sql/3.sql

您可能从一些示例中复制了字符<和>,其中使用这些字符来表示文件名(如mysql ... <sql_file> )的占位符。

必须将整个占位符<sql_file>替换为实际的文件名,即示例中的shared/local_sql/3.sql。

<和>字符被shell解释为标准输入或标准输出的重定向。

<shared/local_sql/3.sql指示shell从指定的文件重定向mysql命令的标准输入。这可能真的有用。

>需要在文件名之后指定输出应该重定向到的位置。因为没有文件名,只有行的末尾,所以您将得到错误消息。

票数 0
EN

Stack Overflow用户

发布于 2022-05-11 10:05:13

>是输出重定向算子,不设置任何输出文件。较短的测试用例:

代码语言:javascript
复制
$ >
sh: syntax error: unexpected newline

如果你真的想把输出发送到一个文件中,你需要添加文件名,但我的印象是你认为<>是一种引号,但它们不是。

代码语言:javascript
复制
mysql -h 127.0.0.1 -D db_name -u username --password=pass --debug-info true < shared/local_sql/3.sql
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72198750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档