2016-02-15 22 views
0

我有一个名为myname的MySQL用户。我在.conf文件中为我的项目配置指向主机dbjdbc:mysql://db/db_name(当项目运行时检查该文件中的配置以找到db的路径)。但是,该项目显示错误:Unknown database 'db_name'(执行时)。然后我登录与用户myname到MySQL和检查赠款和看到:如何将权限更改为MySQL中的其他主机?

+-----------------------------------------------------+ 
    | Grants for [email protected]%         | 
    +-----------------------------------------------------+ 
    | GRANT USAGE ON *.* TO 'myname'@'%'     | 
    | GRANT ALL PRIVILEGES ON `db_name`.* TO 'myname'@'%' | 
    +-----------------------------------------------------+ 
  • 我假定主机应[email protected][email protected]%,那么我就可以查询到db_name没有错误。如果我的这种想法是正确的,我如何将特权改为[email protected]
  • 如果不是,我能做些什么来解决这个错误:Unknown database 'db_name'
+0

显示试图建立连接的代码 – RiggsFolly

+0

如果通过命令行或数据库客户端以“myname”身份登录到数据库,则应该看到该db_name。这将确认您的权限没有任何问题。他们授予命令看起来对我好。 – MadDokMike

+0

'%'是主机名,在这种情况下,它意味着类似any-ip的东西,它与数据库名无关,它可以是ex,''myname'@'192.168.20.22'' – Yazan

回答

0

好吧,我会回答,而不是评论,为了粘贴代码的目的是可读的。我已经运行了下面的测试场景来建模你的问题,它适用于我。你的db_name数据库是否存在?

CREATE DATABASE db_name2;

CREATE USER'myname2'@'%'IDENTIFIED BY'supersecure';

授权使用 TO'myname2'@'%';

授予所有权利db_name2。*'myname2'@'%';