【问题标题】:diesel_cli setup returns error regarding DATABASE_URLdiesel_cli 设置返回有关 DATABASE_URL 的错误
【发布时间】:2020-09-02 05:55:41
【问题描述】:

我正在尝试设置 Diesel-CLI,但它总是返回一些关于 DATABASE_URL 的错误。

对于这个问题,我们假设:

  • 用户=root
  • 密码=#Abcd1234
  • 主机=本地主机
  • 数据库=codeforces
  • mysql 服务器socket=/var/lib/mysql/mysql.sock/


For DATABASE_URL=mysql://root:#Abcd1234@localhost/codeforces  
and DATABASE_URL=mysql://root:#Abcd1234@localhost/codeforces.sql?socket=(/var/lib/mysql/mysql.sock)

错误:未知的 MySQL 服务器主机 'root' (-2)

For DATABASE_URL=mysql://root@localhost/codeforces  
and DATABASE_URL=mysql://root@localhost/codeforces?socket=(/var/lib/mysql/mysql.sock)

Error: Can't connect to local MySQL server through socket '/run/mysql/mysql.sock' (2)

For DATABASE_URL=mysql://root@127.0.0.1/codeforces

错误:用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

For DATABASE_URL=mysql://root:#Abcd1234@127.0.0.1/codeforces

错误:未知的 MySQL 服务器主机 'root' (-2)


我试过用谷歌搜索它,但到目前为止没有结果。我不知道我在哪里犯了错误。

所以我的问题是:
如何解决这个错误?

【问题讨论】:

  • # 是 URL 中的一个特殊字符,所以我认为您不能在密码中使用它。之后的任何内容都会被有效地忽略..
  • 是的,现在当我将密码更改为其他密码时它可以工作了。谢谢@Frxstrem

标签: mysql rust database-connection rust-diesel


【解决方案1】:

我的 DATABASE_URL 无法正常工作,因为我在 url 中使用了保留字符。

来自RFC 1738 规范:

只有字母数字、特殊字符“$-_.+!*'()”和用于其保留目的的保留字符可以在 URL 中使用未编码。

对于那些在将“localhost”更改为“127.0.0.1”时遇到此错误的人:

错误:无法加载插件caching_sha2_password:/usr//usr/lib64/mysql/plugin//caching_sha2_password.so:无法打开共享对象文件:没有这样的文件或目录

尝试这样做(它对我有用):

mysql>ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    相关资源
    最近更新 更多