MySQL—修改数据库 root 用户密码
三种方式
linux 命令行执行 mysqladmin 客户端程序
mysql 命令行 set password 命令
mysql 命令行 update 命令 (推荐使用,避免多用户问题)
方式一:mysqladmin 方式
格式
复制代码
其中user_name
即为用户名,oldPasswd
即为旧密码,newPasswd
即为新密码;
示例
复制代码
方式二:set password 方式
需要先通过mysql -uroot -p
进入 mysql 命令行
格式
复制代码
其中user_name
即为用户名,newPasswd
即为新密码;
示例
复制代码
方式三:update 命令
需要先通过mysql -uroot -p
进入 mysql 命令行
格式
复制代码
其中user_name
即为用户名,newPasswd
即为新密码;
示例
复制代码
Q & A
问题:修改密码后服务端生效,但是 navicat 还能使用旧密码连接 mysql?
其实 mysql 数据库中,我们所说的用户不仅仅只是'root'
,更多的是指root@localhost
和root@%
这种带有'userName'@'hostName'
的才是具体的用户。1)当我们使用:
复制代码
可能只是改了root@localhost
这个用户,有可能还有root@%
用户。2)查看 user 表:
复制代码
从 user 表中,我们可以看到root
对应到多个host
,使用之前的 set 语句可能我们只是更改了其中一个用户,我们可以通过update
命令更新mysql.user
表,全局更新所有root@hostName
的密码;
3)所以,我们应该使用:
复制代码
这样可以全局改变所有带有root@
的用户密码,再通过 navicat 使用旧密码连接数据库时,远程访问拒绝。
评论