你的理解并没有什么错误,但是有一个问题,1:
程序和数据库在同一个机子上,访问时用的是root加密码(也就是上面的第三个用户),成功!2:
把它们删除了,可是在连接时就说没有权限了
以上两种情况在登录时使用的是同一个登录设置??
你是怎么写的??
我怀疑你的登录设置实现上匹配的不是第三个而是第二个
将你的登录语句写出来看看你也可以在你正常登录到 mysql 服务器后,
执行下面这条语句
SELECT CURRENT_USER();查看你实现上匹配的是哪一个用户权限
如果返回是
-> '@localhost'那就说明匹配的是第二个
程序和数据库在同一个机子上,访问时用的是root加密码(也就是上面的第三个用户),成功!2:
把它们删除了,可是在连接时就说没有权限了
以上两种情况在登录时使用的是同一个登录设置??
你是怎么写的??
我怀疑你的登录设置实现上匹配的不是第三个而是第二个
将你的登录语句写出来看看你也可以在你正常登录到 mysql 服务器后,
执行下面这条语句
SELECT CURRENT_USER();查看你实现上匹配的是哪一个用户权限
如果返回是
-> '@localhost'那就说明匹配的是第二个
解决方案 »
- 在trigger中mysql怎么获取inserted值?
- mysql双机热备
- ServerA - > ServerB的MySQL数据库复制
- MySQL语句的问题
- 谁能帮忙优化下这个SQL句子
- 求一表间连接的
- odbc 连接mysql ,执行dao.open()时报错
- 如何用SQL命令拷贝一个表,只拷空结构,不拷记录.
- 在哪能下载MYSQL是LINUX版本的。还有在LINUX下的MYSQL的JDBC驱动程序。
- 关于java eclipse连接数据库出现java.sql.SQLException
- 关于linux下的用户问题
- Invalid authorization specification: Access denied for user: '[email protected]' (Using password: YES)
{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Properties pr = new Properties();
pr.put("characterEncoding","GBK");
pr.put("useUnicode", "TRUE");
pr.put("user","root"); // MySQL Login User Name, Special define in MySQL, not for linux login ID
pr.put("password", ""); // MySQL Login Password
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ota3", pr); //conn = DriverManager.getConnection("jdbc:odbc:FreeBSD","root","11");
}
catch(SQLException e)
{
WriteLog("Mysql():" +e.getMessage());
System.err.println("Mysql():"+e.getMessage());
}
catch(java.lang.ClassNotFoundException e)
{
WriteLog("Mysql():" +e.getMessage());
System.err.println("Mysql():"+e.getMessage());
}
catch(Exception e)
{
WriteLog("Mysql():" +e.getMessage());
}
}
pr.put("password", ""); // MySQL Login Password
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ota3", pr);Host = localhost
Use = root
Password = 留空也等同于 mysql -h localhost -u root呵呵,
由于第三个用户授权信息是有密码的,
而你登录时却没有密码,
所以你登录所匹配的用户是第二条你可以使用一个图形化客户端程序 再试一试
:)
MySQL-Front 一个很好的东东
我用的是javaBean连接的,连接数据库的那块是这样的(我在改动前以及改动后根本没有改javaBean文件):
try
{
Class.forName( "org.gjt.mm.mysql.Driver ").newInstance();
Properties pr = new Properties();
pr.put( "characterEncoding ", "GBK ");
pr.put( "useUnicode ", "TRUE ");
pr.put( "user ", "root ");
pr.put("password", "密码");
conn=DriverManager.getConnection "jdbc:mysql://localhost:3306/ota3", pr);
} catch(SQLException e)
{
WriteLog( "Mysql(): " +e.getMessage());
System.err.println( "Mysql(): "+e.getMessage());
}
catch(java.lang.ClassNotFoundException e)
{
WriteLog( "Mysql(): " +e.getMessage());
System.err.println( "Mysql(): "+e.getMessage());
}
catch(Exception e)
{
WriteLog( "Mysql(): " +e.getMessage());
}
另外用 select current_user();出错,改用select user();得到“root@localhost”;
返回当前会话被验证匹配的用户名:
mysql> SELECT USER();
-> 'davida@localhost'
mysql> SELECT * FROM mysql.user;
-> ERROR 1044: Access denied for user: '@localhost' to database 'mysql'
mysql> SELECT CURRENT_USER();
-> '@localhost'