出问题的操作:
数据库为mysql
在idea 14 的database 组件中执行sql : delete from 表1 where 字段1 in (select 字段2 from 表2 where ******* );
字段2 在表2中是不存在的, 所以该SQL 是一个语法错误的SQL,不应该能执行。
但是在 idea 14的database 组件中是可以执行的,执行的效果相当于:delete from 表1;
所以直接整个表的数据清空了。
解决过程:
1、找到mysql备份,当天凌晨的。 数据库备份任何情况下都是必备的。
2、先在一台测试机上做mysql恢复测试。
做该步骤操作的时候碰到一个小问题,mysql root密码忘记了 ,登陆mysql报如下错误:
mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决方式:
编辑mysql配置文件my.ini(不知道在哪请搜索),在[mysqld]这个条目下加入
skip-grant-tables
保存退出后重启mysql
这时 mysql可以无密码登陆了, 登陆后修改root密码:
update user set password=password("新密码") where user="root";
flush privileges;
改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。
3、执行mysql -uroot -p**** 数据库名<备份文件名, 数分钟后完成恢复操作。
解决的过程中还用到了一下几个命令,记录下:
实例1:从远处复制文件到本地目录
命令:
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
实例2:从远处复制到本地
命令:
scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
参考:http://www.cnblogs.com/peida/archive/2013/03/15/2960802.html