新手,第一次写文章分享个人经验,有啥不足之处望多多指教。😄
先贴个图
接下来来说说我在备份和恢复命令中遇到的问题,致于录入查询修改删除命令这里就先不讲了,网上多的是详细的资料,毕竟面向百度编程嘛(其实是学生信息程序做一半才想起来做笔记,前面遇到的问题给忘了😭) 。
这里想说一句刚学的我的理解:对于MySQL数据库,在用C++于VS里使用时,语法格式啥的多在workbench里试试,虽然有些workbench里可以但是VS里不行(比如有的workbench里可以不用引号(单引号、双引号、TAB键上面的点、不加引号),但VS要)。。。
备份数据时遇到的问题:
首先 --> 备份命令:SELECT *(这里填列名,*代表所有列) FROM 表名 INTO OUTFILE '保存的路径';
问题1:路径,在workbench中 正斜杠/ 和反斜杠\\ 都是可以的,但VS里只能用 正斜杠/,所以用CString.Replace(_T("\\"), _T("/")); 替换了。
问题2:表名,在workbench中报错1046。最终用 库名.表名 的方式解决了(例:school.student)。
问题3:不能保存,在workbench中报错1290。后面查到是MySQL几几版本以上还是啥来着,secure_file_priv 是默认为NULL的。
在cmd中进入mysql后用 show variables like '%secure%' 可以查询
修改的方法是找到mysql的安装目录下的my.ini文件,用记事本打开,找到[mysqld],找下面添加secure_file_priv= 路径,路径格式看看其他的配置就晓得了,最后重启mysql服务让路径生效,这样就可以在这个路径下保存备份了!
问题4:备份还有个问题,不能覆盖保存,后面问过大佬,给了两个思路,不过因为没有实操这里就提一下 ①旧版通过zip命令压缩(删除源文件)②移动文件到备份目录 mv(Linux)/move(Windows)。
备份问题,OVER。
恢复数据时遇到的问题:
首先--> 恢复命令:LOAD DATA LOCAL INFILE '备份文件路径' INTO TABLE 库名.表名;
问题1:恢复失败,在workbench中报错2063。首先,查看权限是否打开,在cmd中进入mysql后输入命令 show variables like '%local_infile%' ,我的是ON,已开启,不是权限问题。
后面在网上搜到一个办法:
在cmd中用如下方式成功恢复,但 vs 和 workbench 中依旧不可以:
① 输入mysql --local-infile=1 -h 127.0.0.1 -u root -p,再输入数据库密码,进入到数据库
② 切换库
③ 输入set global local_infile=1;
④ 导出命令,导出成功
但是这不是我要的,后面经过大佬的指导,在mysql_real_connect连接数据库之前,加上这个方法之后就可以成功恢复,成功导出了!
还有还有,恢复命令里的路径我也改成了正斜杠/
恢复问题,OVER
完结,撒花,第一篇文章结束!○( ^皿^)っHiahiahia…