登录Discuz论坛的数据库,执行下面几条MySQL命令:
[[email protected] control]# mysql -uroot -panter2017
MySQL [(none)]> show databases;
使用Discuz论坛的数据库
mysql> use discuz;
mysql> show tables;
查看Discuz论坛数据库里的表结构
mysql> desc pre_ucenter_members;
查询Discuz论坛的管理员账号登录密码
mysql> mysql> select * from pre_ucenter_members where username="admin";
设置一个新密码,用md5生成一个密钥
mysql> select md5("anter2017");
+----------------------------------+
| md5("anter2017") |
+----------------------------------+
| da0ad52378e990f8e35b0f9d73b9961d |
+----------------------------------+
根据上面设置的md5值,更改论坛管理员用户的密码
mysql> update pre_ucenter_members set password="da0ad52378e990f8e35b0f9d73b9961d" where username="admin";
下面分别清理MySQL数据库的缓存
mysql> flush hosts;
Query OK, 0 rows affected (0.00 sec)
mysql> flush logs;
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> flush tables;
Query OK, 0 rows affected (0.01 sec)
mysql> flush status;
Query OK, 0 rows affected (0.00 sec)
mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)
mysql> flush status;
Query OK, 0 rows affected (0.00 sec)
然后,现在登录论坛,输入用户名admin,新密码,就可以成功登录了
清空缓存的方法主要用flush命令 为了执行FLUSH,你必须有reload权限
flush hosts主要是用来清空主机缓存表。如果你的某些主机改变IP数字,或如果你得到错误消息Host … isblocked,你应该清空主机表。当在连接MySQL服务器时,对一台给定的主机有多于 max_connect_errors个错误连续不断地发生,MySQL为了安全的需要将会阻止该主机进一步的连接请求。清空主机表允许主机再尝试连接。
flush logs主要是关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。
flush privileges主要是每当重新赋权后,为了以防万一,让新权限立即生效,一般都执行一把,目地是从数据库授权表中重新装载权限到缓存中。
flush tables主要是关闭所有打开的表,同时该操作将会清空查询缓存中的内容。
flush tables with read lock主要是关闭所有打开的表,同时对于所有数据库中的表都加一个读锁,直到显示地执行unlock tables,该操作常常用于数据备份的时候。
flush status重置大多数状态变量到0。
flush master删除所有的二进制日志索引文件中的二进制日志文件,重置二进制日志文件的索引文件为空,创建一个新的二进制日志文件,不过这个已经不推荐使用,改成reset master 了。可以想象,以前自己是多土啊,本来一条简单的命令就可以搞定的,却要好几条命令来,以前的做法是先查出来当前的二进制日志文件名,再用purge 操作。
flush query cache重整查询缓存,消除其中的碎片,提高性能,但是并不影响查询缓存中现有的数据,这点和Flush table 和Reset Query Cache(将会清空查询缓存的内容)不一样的。
flush slave类似于重置复制吧,让从数据库忘记主数据库的复制位置,同时也会删除已经下载下来的relay log,与Master一样,已经不推荐使用,改成Reset Slave了