记录一些链接,方便自己有空的时候慢慢查看

linux下PHP5.5的安装【oci8,pdo-oci,memcache,Zend OPCache扩展】
http://hanqunfeng.iteye.com/blog/1982531


详解Nginx+php-5.4+Mysql-5.5+Memcached+redis的架构部署
http://www.educity.cn/linux/1145041.html


 Centos linux安装MySQL-5.6.4
http://blog.youkuaiyun.com/suixinm/article/details/20782799


继续平滑升级你的PHP到5.6.0,及更新代码示例说明
http://levi.cg.am/archives/3596


Linux下查看软件安装路径
http://www.2cto.com/os/201208/147421.html


http://www.vmware.com/products/workstation/workstation-evaluation
下载vm11


php增加pdo_mysql单独安装
http://my.oschina.net/pureboys/blog/183182


 Nginx的平滑重启和平滑升级
http://blog.chinaunix.net/uid-16879831-id-3313181.html


nginx File not found 错误 nginx
http://www.cnblogs.com/iosdev/p/3439834.html


这篇很好 php-fpm 启动参数及重要配置详解
http://www.cnblogs.com/argb/p/3604340.html


编译php5.4及安装后添加扩展
http://www.thinksaas.cn/group/topic/108438/


记录-- mysql 5.6.12编译安装
http://www.csdn123.net/a/news/2013/20131110/3381.htm


Linux 下 PHP 扩展 PDO 编译安装
http://blog.youkuaiyun.com/liruxing1715/article/details/8268513


Mysql无法启动:Unknown/unsupported storage engine: InnoDB 
http://www.justwinit.cn/post/6593/


CentOS 6.4下编译安装MySQL 5.6.14
http://www.cnblogs.com/xiongpq/p/3384681.html


CentOS6.5 安装 Nginx1.7.2
http://www.tuicool.com/articles/IrYJNrF

<think>好的,我现在需要帮助用户检测MySQL数据库中是否存在空密码账户。首先,我得回忆下MySQL的用户管理机制。用户信息通常存储在mysql.user表中,里面包含了用户名、主机以及认证信息等字段。用户的密码可能存储在authentication_string或者password字段中,具体取决于MySQL的版本。比如,5.7版本之后可能使用authentication_string,而之前版本可能用的是password字段。所以,我需要先确定用户使用的MySQL版本,或者直接查询相关字段是否存在空值。 接下来,用户需要检查空密码账户。空密码可能意味着该账户没有设置密码,或者密码字段为空。这可能存在安全风险。根据引用中的信息,例如引用[3]提到修改root密码时使用update语句设置authentication_string字段,这说明在较新的版本中,密码存储在这个字段。而旧版本可能使用password字段。因此,我需要构造个SQL查询,检查这两个字段是否为空。 可能的步骤是:连接到MySQL数据库,然后执行SELECT查询,从mysql.user表中筛选出password或authentication_string为空的用户。例如,使用如下语句: SELECT User, Host FROM mysql.user WHERE authentication_string = '' OR password = ''; 但需要注意,不同版本字段名不同,可能需要分开处理。或者使用COALESCE函数合并两个字段的判断,不过可能需要先确认字段是否存在。如果用户不确定版本,可能需要分别检查这两个字段。 另外,还需要考虑插件认证的情况。例如,如果用户使用mysql_native_password插件,密码可能存储在password字段,而使用caching_sha2_password则可能在authentication_string。不过,这可能比较复杂,但主要目标还是检查这两个字段是否为空。 然后,用户可能需要执行FLUSH PRIVILEGES;来确保权限更新,但查询的时候可能不需要。另外,引用[3]中提到修改密码后需要重启服务,但这里只是查询,不需要重启。 还需要注意权限问题,执行这个查询的用户需要有访问mysql.user表的权限,比如root用户或者具有SELECT权限的用户。如果用户忘记密码,可能需要参考引用中的方法重置密码,比如进入单用户模式或者修改配置文件跳过权限检查,如引用[3]和[4]提到的步骤,但当前问题只是检查空密码账户,所以假设用户已经有权限登录。 总结步骤: 1. 登录MySQL数据库,使用有权限的账户。 2. 执行查询语句,检查authentication_string和password字段是否为空。 3. 根据结果判断存在空密码的账户。 4. 如果有,建议修改密码以提高安全性,参考引用[2]中的mysqladmin命令或引用[3]中的UPDATE语句。 可能的问题:用户可能混淆了不同版本的字段名称,或者某些账户虽然密码为空,但可能被插件处理为其他形式。需要确保查询覆盖所有可能的字段。另外,如果账户使用auth_socket插件,可能不需要密码,但这种情况通常不在远程访问中使用,属于本地socket认证,但这也是需要考虑的情况,不过可能不在当前问题的范围内。</think>要检测MySQL数据库中是否存在空密码账户,可以通过以下步骤操作: --- ### **步骤1:登录MySQL数据库** 使用具有管理员权限的账户登录MySQL: ```bash mysql -u root -p ``` 输入密码后进入MySQL命令行。 --- ### **步骤2:执行空密码账户查询** 在MySQL中,用户密码信息存储在`mysql.user`表中。根据MySQL版本不同,密码字段可能是`password`(旧版本)或`authentication_string`(5.7+版本)。执行以下查询: ```sql SELECT User, Host FROM mysql.user WHERE authentication_string = '' OR password = ''; ``` - **字段说明**: - `User`:账户名。 - `Host`:允许登录的主机。 - `authentication_string`或`password`为空表示未设置密码[^3]。 --- ### **步骤3:分析结果** - 若返回空结果,表示没有空密码账户。 - 若返回用户列表,则这些账户密码为空,需立即修复。 --- ### **步骤4:修复空密码账户** 对检测到的空密码账户,使用以下命令设置新密码(以用户`test@localhost`为例): ```sql ALTER USER 'test'@'localhost' IDENTIFIED BY 'NewPassword123!'; ``` 或通过`mysqladmin`工具修改: ```bash mysqladmin -u test -p password "NewPassword123!" ``` --- ### **安全建议** 1. **禁用空密码账户**:生产环境中应避免空密码账户。 2. **定期审计**:通过脚本定期执行空密码检测。 3. **权限最小化**:确保账户仅拥有必要权限[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值