起因:最近新项目网站搬家到新服务器,感觉直接复制data下的文件比省事,所以就直接将data文件放到服务器对应的mysql下(一般linux中mysql的data文件在/var/lib/mysql/目录下)!

解决办法:由于项目新接手过来,不知道密码是多少,于是想直接在msyql命令里改一下密码,结果总是出现“ERROR 1036 (HY000): Table ‘ is read only”,这个鸟词(不明白啥意思),查了一下,就是因为这个mysql的文件权限问题,改吧(就按照其他正确的数据库权限来改),并且改完后需要重启mysql

再找到mysqladmin文件(应该在这个目录/usr/bin/mysqladmin)执行如下命令:

然后输入密码

ok

在到mysql命令下更改密码,没有问题!

在做后台开发的时候由于数据需求,查询条件为“中文”汉字,在其中就出现了一个问题:ajax获取数据利用url传参,正常在谷歌浏览器下ok没问题(在这个浏览器下做的开发),但是换到ie下不行了,刚开始以为哪里出错了,找到最后原来是这个url传参在ie下传到php页面后变成了gbk编码,那么你在utf-8的页面用gbk编码格式的中文查询肯定返回空!

问题叙述:中文url传参或者说接收$_GET中文参数在不同浏览器产生编码格式是不一样的,导致接收页面的字符不同查询的数据结果就没了!

解决办法:形象点说比如我们在度娘上搜索后,看地址栏上一堆乱七八糟的码,那个其实就将中文转码后的编码,php有一对函数urlencode(转码)和urldecode(解码)。比如<a href=”a.php?<?php echo urlencode(‘小明’) ?>”> ,在查看源代码的时候就会显示为<a href=”a.php?name=%E5%B0%8F%E6%98%8E”> ,在a.php页面接收时要用urldecode解码,这样经过解码的中文汉子就是正常的编码了  

问题扩展:

  urlencode()不同编码转换后的样式:

  中文 -> GB2312的Encode -> %D6%D0%CE%C4

  中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87

  注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了,我认为这应该算是Firefox一个bug。

除了“-_.”之外的所有非字母数字字符都将被替换成百分号“%”后跟两位十六进制数。
urlencode和rawurlencode的区别:urlencode将空格编码为加号“+”,rawurlencode将空格编码为加号“%20”。
如果要使用UTF-8的Encode,有两种方法:

一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。

二、使用mb_convert_encoding函数:

实例:

JavaScript中的URLEncode:
如:%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20
encodeURI不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。