我正在尝试使用mysql命令行客户端来执行一个过程。程序helloworld()
在mysql查询浏览器中正常运行。
在查询浏览器中选择的db方案
DELIMITER $$
DROP PROCEDURE IF EXISTS helloworld$$
CREATE PROCEDURE helloworld()
BEGIN
SELECT 'helloworld';
END$$
当我call helloworld()
时,它会返回helloworld。我将过程保存为helloworld.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
我应该提供文件的路径吗?
答案 0 :(得分: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
答案 1 :(得分:1)
在我的情况下,解决方案实际上是将源文件的所有权更改为登录到计算机并通过username
运行命令的用户的mysql terminal
。我在MariaDB / MySQL5.6中使用CentOS
linux
。
用于删除错误的命令是:sudo chown username:username sourcefile.sql
我也尝试将其更改为mysql:mysql
而不是username:username
,但错误仍然存在,直到我使用sudo chown username:username sourcefile.sql
答案 2 :(得分:0)
我遇到了类似的问题。解决方案对我有用
sudo chown root:root /Full/path/to/sqlfile.sql
Sudo su;
mysql -u root -p < /Full/path/to/sqlfile.sql
如果将来有人帮助。
答案 3 :(得分:-1)
这是文件许可问题。
mysql进程,不运行mysql命令界面的shell用户需要读取文件的权限。
答案 4 :(得分:-1)
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;