te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>linux中MySQL忘记密码怎么办
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

linux中MySQL忘记密码怎么办

运维笔记admin4浏览0评论

我们在安装使用MySQl 时,有时可能避免不了忘记密码,如果你忘记密码,可以按照如下方案进行操作:

我使用的MySQL版本:MySQL5.7.34

1、关闭mysql服务

查看MySQL进程,pkill -9 mysqld  先杀死进程

 查看一下端口是否存在,不存在则进行下面操作。

2、修改myf文件配置

找到myf配置文件

[root@mysql mysql]# vim /etc/myf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
skip-grant-tables      加上这一行(跳过授权表)

之所以有用户名有密码就是因为有授权表的存在,它的表里面记录了用户名和密码。有账户去登录MySQL数据库的时候它先去查看那张表,现在就直接跳过去,不看了,直接就登录了。

3、重启mysql服务
[root@mysql mysql]# bin/mysqld_safe --user=mysql &

  4、无密码登录mysql进行操作

[root@mysql mysql]# bin/mysql   拿客户端去连mysql会发现直接就进去了不需要输入用户名密码

5、MySQL客户端连接服务器并修改密码

[root@mysql ~]# /usr/local/mysql/bin/mysql

拿客户端去连MySQL会发现直接就进去了不需要输入用户名密码

mysql> select user,host,authentication_string from mysql.user;

user的表在mysql数据库里面,这是一个查询不是修改,查到之后去把 authentication_string认证字符串修改一下用password函数修改一下,里面就是新密码。

红框部分是认证字符串,目前是处于加密状态,

mysql> update mysql.user set authentication_string=password('Helloworld456!') where user='root';  

 给root账户修改,这个root账户是mysql里面的root账户和系统里面的root账户完全不搭边,是mysql最高级的账户,跟系统里面roo账户的级别是一样的。

现在密码已经被改掉了,想要立即生效就执行下面操作。

mysql> flush privileges;    这个是刷新一下上面的用户授权表,其实就是让它立即生效。

mysql> exit      退出 

6、使用新密码进行登录

[root@mysql mysql]# bin/mysql -u root -p'Helloworld456!'

退出之后再次重启mysql,因为之前的mysql用的skip-grant-tables  跳过授权表了,不能让它一直有这个配置,不然每次一重启就不用密码了,太危险。所以得把这个配置取消掉,然后在重启服务,再以正常的方法登录。

新版本不MySQL重启服务,新密码也会直接生效,本机测试版本为5.7.34

7、重启MySQL服务

[root@mysql mysql]# pkill -9 mysqld

 [root@mysql mysql]# bin/mysqld_safe --user=mysql &    启动MySQL服务

重启MySQL服务会发现,使用bin/mysql不需要密码直接就登录到MySQL了,这样太危险 

8、修改myf配置文件

[root@mysql mysql]# pkill -9 mysqld  停止MySQL服务

[root@mysql mysql]# vi /etc/myf      在这个配置文件中,把跳过授权表这一行删掉,不要注释,删完之后重新启动MySQL服务,重新登录MySQL服务,没有密码就进不去

9、重启并登录MySQL

[root@mysql mysql]# bin/mysqld_safe --user=mysql &  重新启动MySQL服务

[root@mysql mysql]# bin/mysql  这时无密码登录MySQL,会提示需要输入密码

10、使用新密码登录

[root@mysql mysql]# bin/mysql -u root -p'Helloworld456!'

 MySQL修改密码成功。

【注意】请不要因为没有掌声就放弃梦想。

发布评论

评论列表(0)

  1. 暂无评论