2

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

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

  • 用户=根
  • 密码=#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)

错误:无法通过套接字'/run/mysql/mysql.sock'连接到本地MySQL服务器(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)


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

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

4

1 回答 1

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';

于 2020-05-16T17:17:20.003 回答