忘记MySQL root密码怎么办?

在配置文件的mysqld一节,增加skip-grant-tables选项:

[mysqld]
skip-grant-tables

 重启mysql服务。

service mysql restart

 在服务器本机进入mysql(不需要输入密码):

mysql

 此时已经是root权限,可以做任何事情。有一点需要注意,如果要操作系统表,如增加用户等,可能会报错:

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

 这个时候,在MySQL命令提示符下执行:

set global read_only=0;
flush privileges;

 接下来就可以创建用户,修改密码了。不过别忘了,在所有操作执行完毕后,运行:

set global read_only=1;
flush privileges;

 接下来退出MySQL命令行,删除或者注释掉刚开始添加到mysql配置文件(my.cnf)中的

skip-grant-tables

最后,保存配置文件,重启mysql服务即可。

使用Rewrite设置http转https

业务类的网站一般启用https,甚至要求客户端证书。但给第三方系统提供的调用接口,可能无法支持客户端证书,这时候就要求同时在apache配置https和http两个虚拟主机,并在http的这个虚拟主机上配置rewrite。下面是一个例子:

	RewriteEngine on
	RewriteCond %{HTTPS} !=on
	RewriteCond %{REQUEST_URI} !^/interface-path/.*$
	RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

 上述例子表示如果请求使用的是非https,且网址中不以/interface-path开头的,都把请求地址转换为https。当然如果没有第三行,就表示一律自动转为https。