在 MySQL 中运行 .sql 文件

Léo*_* 준영 1 mysql sql mysql-error-1146

这个问题是基于这个线程

我运行失败

sudo mysql 
\. /users/cs/SO_db/posts.sql 
Run Code Online (Sandbox Code Playgroud)

我收到错误

ERROR 1146 (42S02): Table 'personal.posts' doesn't exist
Run Code Online (Sandbox Code Playgroud)

MySQL的手册

五个字符的 SQLSTATE 值 ('42S02')。这些值由 ANSI SQL 和 ODBC 指定,并且更加标准化。并非所有 MySQL 错误号都映射到 SQLSTATE 错误代码。值“HY000”(一般错误)用于未映射的错误。

错误:1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE)

消息:表“%s.%s”不存在

您如何解决该错误消息?

Nat*_*han 5

您加载的 SQL 脚本引用了数据库中不存在的数据库和/或表。

通常,人们不会使用mysql来调用该工具sudo,因为系统用户权限与 MySQL 用户不同。

要通过 mysql 执行 SQL 脚本,我会尝试以下操作:

cat somefile.sql | mysql -u <mysqluser> -p <mysqldb>
Run Code Online (Sandbox Code Playgroud)

此命令会将“somefile.sql”加载到工具中,以用户身份mysql连接到 MySQL 服务器并选择数据库。该工具将在执行脚本之前提示输入访问密码。localhost<mysqluser><mysqldb>mysql<mysqluser>