4

我正在尝试使用 mysql 命令行客户端来执行一个过程。该过程helloworld()在 mysql 查询浏览器中执行良好。

在查询浏览器中选择的数据库方案

DELIMITER $$
DROP PROCEDURE IF EXISTS helloworld$$
CREATE PROCEDURE helloworld()
BEGIN
SELECT 'helloworld';
END$$

当我call helloworld()返回helloworld时。我将程序helloworld.sql保存在桌面的 SQL SCRIPT FILE ANSI .sql 中

现在我正在尝试从 cmd 客户端访问保存在桌面中的 .sql 文件,并提供成功连接的密码

现在当我输入

ENTER PASSWORD:******
Your Mysql connection id is 43
Server Vesion 5.5.24

mysql> SOURCE helloworld.sql
ERROR failed to open file helloworld.sql Error 2

我应该给出文件的路径吗?

4

5 回答 5

1

尝试:

/path/to/file/helloworld.sql:

USE `yourdb`;

DELIMITER $$

DROP PROCEDURE IF EXISTS `helloworld`$$

CREATE PROCEDURE `helloworld`()
BEGIN
  SELECT 'helloworld';
END$$

DELIMITER ;

然后从命令行尝试:

Your Mysql connection id is 43
Server Vesion 5.5.24

mysql> SOURCE /path/to/file/helloworld.sql
于 2013-11-08T22:35:53.720 回答
1

就我而言,解决方案实际上是将源文件的所有权更改username为登录机器并通过mysql terminal. 我正在使用CentOS linuxMariaDB/MySQL5.6。

用于消除错误的命令是:sudo chown username:username sourcefile.sql

我也尝试将其更改为mysql:mysql而不是username:username,但错误一直存在,直到我使用sudo chown username:username sourcefile.sql

于 2014-12-29T21:30:08.847 回答
1

我遇到了类似的问题。对我有用的解决方案是

sudo chown root:root /Full/path/to/sqlfile.sql
Sudo su;
mysql -u root -p < /Full/path/to/sqlfile.sql

如果它对将来的任何人有帮助。

于 2018-05-03T18:54:54.987 回答
-1

这是文件权限问题。

mysql 进程,而不是运行 mysql 命令界面的 shell 的用户,需要读取文件的权限。

于 2013-11-08T22:42:05.717 回答
-1

当我尝试从 mysql 控制台执行操作时,我也收到了相同的消息,但是当我打开命令提示符并执行相同的步骤时,它运行良好,没有出现任何错误

C:\Users\SubhenduD>cd ../

C:\Users>cd ../

C:\>cd \xampp\mysql\bin


C:\xampp\mysql\bin>mysql -u -root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.6.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> use balticktravels;

mysql> source balticktravels.sql;
于 2016-09-12T05:36:15.873 回答