Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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在运行wasm包时会出现许多错误_Mysql_Rust_Webassembly - Fatal编程技术网

导入mysql在运行wasm包时会出现许多错误

导入mysql在运行wasm包时会出现许多错误,mysql,rust,webassembly,Mysql,Rust,Webassembly,我是一个非常新的生锈和网页组装和有一个简单的样本网站。到目前为止,它只是非常简单的东西,一切都很好。接下来我想了解一下如何连接到MySQL 在Cargo.toml中,我添加了: [dependencies] wasm-bindgen = "0.2.50" mysql = "*" 没有mysql部分,一切都可以正常编译。一旦我添加了mysql=“*”,我就会收到很多(317)个错误 一些错误示例: [INFO]: Checking for the Wasm target.

我是一个非常新的生锈和网页组装和有一个简单的样本网站。到目前为止,它只是非常简单的东西,一切都很好。接下来我想了解一下如何连接到MySQL

在Cargo.toml中,我添加了:

    [dependencies]
    wasm-bindgen = "0.2.50"
    mysql = "*"
没有mysql部分,一切都可以正常编译。一旦我添加了
mysql=“*”
,我就会收到很多(317)个错误

一些错误示例:

[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
   Compiling net2 v0.2.33
   Compiling libc v0.2.62
error[E0432]: unresolved import `sys`
  --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src
/tcp.rs:18:5
   |
18 | use sys::c;
   |     ^^^ maybe a missing `extern crate sys;`?

到目前为止,我还没有添加任何代码来实际连接到数据库。我只是想做这个项目。唯一的区别是添加了mysql依赖项

我在使用MySQL时使用了以下站点信息:

考虑到我是新手,我不确定还需要什么其他信息来帮助我


编辑:我在谷歌上搜索了很多这样的错误,但运气不好

这是一个相当大的区别;通过这样做,您将从最高层添加到最低层:

  • 处理mysql的库
  • 库处理MySQL可以使用的各种压缩机制
  • 图书馆应对TLS
  • 处理套接字的库(错误的来源)
如果已知整个链与
wasm
一起工作,那么这就可以了。问题是,它不是;从该库的文件中可以看出,它“知道”windows、macOS或linux是目标。在您的例子中,
wasm
不是这三个符号中的任何一个,因此它尝试使用
net2
进行联网,这取决于
libc
,它需要所有突然丢失的符号

如果你决定推进这一进程,你将陷入一个非常非常深的兔子洞。如果你这样做了,在评论中提及,我会给你指点。但是,在您这样做之前,请考虑以下内容:如果这是一个<代码> WASM>,任何有代码的人都可以知道三联体(原、主机、端口)访问MySQL服务器,以及凭据。这也可能会带来严重的基础架构问题,因为您不一定知道什么是可信客户机,什么不是


(我不会对你撒谎,这也将是一项大量的工作,而且大部分工作都不容易。例如,我不会钻那个洞)

你可能是对的。特别是考虑到这只是一个“我想学习wasm”的项目。(这是永远不会发布的。)好消息是,这是学习体验的一部分!FWIW还有另一个问题,你需要在两者之间架起一座桥;这可能已经改变了,但上次我正确地查看了webassembly,唯一可用的通信方法是webRTC、websockets和HTTP。所以,你应该更进一步。至于学习,真正的学习体验是旅程,而不是目的地:-)
error[E0425]: cannot find value `timeout2ms` in this scope
    --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1145:18
     |
1145 |             .map(timeout2ms)
     |                  ^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `SOL_SOCKET` in this scope
    --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1149:33
     |
1149 |         set_opt(self.as_sock(), SOL_SOCKET, SO_SNDTIMEO,
     |                                 ^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `SO_SNDTIMEO` in this scope
    --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1149:45
     |
1149 |         set_opt(self.as_sock(), SOL_SOCKET, SO_SNDTIMEO,
     |                                             ^^^^^^^^^^^ not found in this scope