mysql 更改root密码的SQL

来源:互联网 发布:大学生支教后收获数据 编辑:程序博客网 时间:2024/05/18 05:18

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpasswd') WHERE User = 'root';

  mysql> FLUSH PRIVILEGES;

方法1: 用SET PASSWORD命令

  首先登录MySQL。
  格式:mysql> set password for 用户名@localhost = password('新密码');
  例子:mysql> set password for root@localhost = password('newpasswd');
     上面例子将用户root的密码更改为newpasswd 

方法2:用mysqladmin

  格式:mysqladmin -u用户名 -p旧密码 password 新密码
  例子:mysqladmin -uroot -p123456 password newpasswd
             上面例子将用户root原来的密码123456改为新密码newpasswd

方法3:用UPDATE直接编辑user表

  首先登录MySQL。
  mysql> use mysql;
  mysql> update user set password=password('newpasswd') where user='root' and host='localhost';
  mysql> flush privileges;

方法4:在忘记root密码的时候,可以这样。

  以windows为例:
  1. 关闭正在运行的MySQL服务。
  2. 打开DOS窗口,转到mysql\bin目录。
  3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证
  4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
  5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  6. 连接权限数据库: use mysql; 。
  6. 改密码:update user set password=password("newpasswd") where user="root";(别忘了最后加分号) 。
  7. 刷新权限(必须步骤):flush privileges; 。
  8. 退出  quit。
  9. 注销系统,再进入,使用用户名root和刚才设置的新密码newpasswd登录。



帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%" 

Sql代码 


   $sudo vi /etc/my.cnf

   在[mysqld]下面添加skip-grant-tables


[mysqld]

skip-grant-tables

   重启mysql server

 


   mysql -uroot -proot

   mysql>use mysql;  

   mysql>update user set host = '%' where user = 'root';  

   mysql>select host, user from user; 


   mysql>grant all privileges on *.* to 'root'@'%' identified by 'rootpasswd' with grant option;

   mysql>flush privileges;


0 0
原创粉丝点击