求大神赐教,sql的权限问题怎么解决啊?

WSGGCC 2018-04-07 10:39:07
我写的程序执行到这里时出错了,控制台显示Can't find file: '.\hello\@0024table.frm' (errno: 2 - No such file or directory),上网查说是权限问题,请问怎么解决?

newName:hll
oldName:hello

conn=DBUtil.getConnection(newName);
for (int i = 0; i < tableList.size(); i++) {
sql = "rename table "+oldName+".$table to "+newName+".$table";
ptmt = conn.prepareStatement(sql);
; ptmt.execute();
}
if(ptmt!=null){ptmt.close();}
if(conn!=null){conn.close();}
...全文
320 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
WSGGCC 2018-04-07
  • 打赏
  • 举报
回复
引用 1 楼 yjsl__ 的回复:
用root用户连接数据库


public static void renameDataBase(String newName, String oldName) {
PreparedStatement ptmt;
try {

//一开始必须填一个已经存在的数据库
Connection conn = DBUtil.getConnection("lannong");
//创建数据库
String sql = "create database if not exists "+newName;
ptmt = conn.prepareStatement(sql);
ptmt.executeUpdate();
ptmt.close();
conn.close();

ArrayList<String> tableList = new ArrayList<>();
//打开原来的数据库
conn=DBUtil.getConnection(oldName);
sql = "select table_name from information_schema.TABLES where TABLE_SCHEMA=?";
ptmt=conn.prepareStatement(sql);
ptmt.setString(1, oldName);
ResultSet rs = ptmt.executeQuery();
while(rs.next()){
tableList.add(rs.getString("table_name"));
}
if (rs!=null) {rs.close();}
if(ptmt!=null){ptmt.close();}
if(conn!=null){conn.close();}

for (int i = 0; i < tableList.size(); i++) {
System.out.println(tableList.get(i));
}
conn=DBUtil.getConnection(newName);
for (int i = 0; i < tableList.size(); i++) {
sql = "rename table "+oldName+".$table to "+newName+".$table";
ptmt = conn.prepareStatement(sql);
; ptmt.execute();
}
if(ptmt!=null){ptmt.close();}
if(conn!=null){conn.close();}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}

}

这个程序我是用于重命名数据库的,请问这时难道不是连接新的数据库吗

根据这篇文章的第三种方法写的http://www.blogjava.net/xiaomage234/archive/2014/07/31/416389.html

yjsl__ 2018-04-07
  • 打赏
  • 举报
回复
用root用户连接数据库

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧