zoukankan      html  css  js  c++  java
  • MySQL—修改数据库root用户密码

    三种方式

    1. linux命令行执行mysqladmin客户端程序
    2. mysql命令行set password命令
    3. mysql命令行update命令 (推荐使用,避免多用户问题)

    方式一:mysqladmin方式

    格式

    $ mysqladmin -uuser_name -p'oldPasswd' password 'newPasswd'
    

    其中user_name即为用户名,oldPasswd即为旧密码,newPasswd即为新密码;

    示例

    $ mysqladmin -uroot -p'1qaz!QAZ' password 123456
    

    方式二:set password方式

    需要先通过mysql -uroot -p进入mysql命令行

    格式

    mysql> set password for user_name@localhost=password('newPasswd');
    Query OK, 0 rows affected (0.94 sec)
    

    其中user_name即为用户名,newPasswd即为新密码;

    示例

    mysql> set password for root@localhost = password('1qw2!QW@');
    

    方式三:update命令

    需要先通过mysql -uroot -p进入mysql命令行

    格式

    mysql> update mysql.user set password=password('newPasswd') where user='userName';
    mysql> flush privileges;
    

    其中user_name即为用户名,newPasswd即为新密码;

    示例

    mysql> update mysql.user set password=password('1qaz!QAZ') where user='root';
    Query OK, 0 rows affected (0.94 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.94 sec)
    

    Q & A

    问题:修改密码后服务端生效,但是navicat还能使用旧密码连接mysql?

      其实mysql数据库中,我们所说的用户不仅仅只是'root',更多的是指root@localhostroot@%这种带有'userName'@'hostName'的才是具体的用户。
    1)当我们使用:

    mysql> set password for root@localhost=password('newPasswd');`
    

    可能只是改了root@localhost这个用户,有可能还有root@%用户。
    2)查看user表:

    mysql> select host, user, password from mysql.user where user='root';
    

    在这里插入图片描述
    从user表中,我们可以看到root对应到多个host,使用之前的set语句可能我们只是更改了其中一个用户,我们可以通过update命令更新mysql.user表,全局更新所有root@hostName的密码;
    3)所以,我们应该使用:

    mysql> update mysql.user set password=password('newPasswd') where user='root';
    Query OK, 1 row affected (0.11 sec)
    Rows matched: 5  Changed: 1  Warnings: 0
    mysql> flush privileges;
    Query OK, 0 rows affected (0.94 sec)
    

    这样可以全局改变所有带有root@的用户密码,再通过navicat使用旧密码连接数据库时,远程访问拒绝。

  • 相关阅读:
    redhat,centos Linux常用命令LS之常用功能
    人生信用卡
    如何让Redhat Linux启动时进入字符终端模式(不进入XWindow)
    OpenJDK和JDK区别
    Linux rpm 命令参数使用详解[介绍和应用]
    linux 的vim命令详解
    centos6.4安装javajdk1.8
    samba服务器 实现Linux与windows 文件共享
    SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled) 几种模式之间的转换
    linux学习之 Linux下的Eclipse安装
  • 原文地址:https://www.cnblogs.com/Andya/p/12552162.html
Copyright © 2011-2022 走看看