是否有漏洞与代码有关,与此无关
其中主流的连接MySQL的方式是用mysql或者mysql2包,它们只是提供了调用驱动的api。很多框架中包括egg,nest都是基于此封装的。
但这不是SQL注入的关键,它只是一种连接方式。它只管连接,不管其他的,存不存在SQL注入完全靠写代码的人本身啊。
一句脚本本没有问题(知道不让直接放sql的,也是放注入),但是你如果让SQL变成由用户输入拼接而成,那就存在SQL注入的风险。
你应该去了解SQL注入的原理,然后进行防患,百度就能找到,然后可以用ORM,一般都对输入做了处理,还能避免直接写SQL(但其实难的地方还得自己写)。
有不理解可以追问。
如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。1.向mysqldserver发送kill命令关掉mysqldserver(不是kill-9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
kill`cat/mysql-data-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个 *** 作。
WIN32下用winmysqladmin.exe关闭服务即可
2.使用`--skip-grant-tables'参数来启动mysqld。
3.使用`mysql-hhostnamemysql'命令登录到mysqldserver,用grant命令改变口令。
也可以用usemysqlupdateusersetpassword=password('yourpass')whereuser='root'
也可以这样做:mysqladmin-hhostname-uuserpassword'newpassword'
4.载入权限表:mysqladmin-hhostnameflush-privileges,或者使用SQL命令`FLUSHPRIVILEGES'。
当然,在这里,你也可以重启mysqld
我解决了,只是把mysql目录重新命名为mysql-1后,copy至其它mysql数据库服务器中,通过root将mysql-1数据库中的user表的root用户权限改过来再copy回去变为mysql就可以了。:)
数据库编码问题.你进数据库时使用以下参数试试
mysql --default-character-set=gbk -uroot -p
指定编码试试,应该就行了.
如果gbk不行,换成gb2312试试.
如果你的数据库编码是utf-8的,你用utf-8反而不行,得用gbk的.因为mysql命令行客户端不支持utf-8
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)