你的理解并没有什么错误,但是有一个问题,1:
程序和数据库在同一个机子上,访问时用的是root加密码(也就是上面的第三个用户),成功!2:
把它们删除了,可是在连接时就说没有权限了
以上两种情况在登录时使用的是同一个登录设置??
你是怎么写的??
我怀疑你的登录设置实现上匹配的不是第三个而是第二个
将你的登录语句写出来看看你也可以在你正常登录到 mysql 服务器后,
执行下面这条语句
SELECT CURRENT_USER();查看你实现上匹配的是哪一个用户权限
如果返回是
-> '@localhost'那就说明匹配的是第二个
程序和数据库在同一个机子上,访问时用的是root加密码(也就是上面的第三个用户),成功!2:
把它们删除了,可是在连接时就说没有权限了
以上两种情况在登录时使用的是同一个登录设置??
你是怎么写的??
我怀疑你的登录设置实现上匹配的不是第三个而是第二个
将你的登录语句写出来看看你也可以在你正常登录到 mysql 服务器后,
执行下面这条语句
SELECT CURRENT_USER();查看你实现上匹配的是哪一个用户权限
如果返回是
-> '@localhost'那就说明匹配的是第二个
解决方案 »
- 请教一下,mysql_connect的CLIENT_INTERACTIVE模式的区别
- 请高手帮忙优化一条SQL
- mysql 存储过程 致命问题,求救!~
- MySQL安装问题!
- 请教多表统计信息条数总和的问题
- mysql将文本文件导入到数据库表中出现的显示不正常的问题
- 为什么没有使用索引??
- mysql-front问题?
- 请教group_concat
- 给mysql数据库的表格添加记录,int格式的字段显示正常,varchar格式的字段显示问号
- 关于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'