MySQL设置、修改密码

MySQL root用户密码设置及忘记密码的解决方法

root用户密码不能为空,需要设置一个密码  设置密码(注意Windows下MySQL安装成功后密码默认为空直接回车就可以登录)

方法一:

 用SET PASSWORD命令 
    首先登录MySQL,使用mysql自带的那个客户端连接上mysql。 

   格式:mysql> set password for 用户名@localhost = password('新密码'); 
   例子:mysql> set password for root@localhost = password('your_password'); 

方法二:

用mysqladmin  (因为我们将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,所以可以直接使用这个mysqladmin来修改密码)

关于mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能,虽然mysqladmin的很多功能通过使用MySQL自带的mysql客户端可以搞定,但是有时候使用mysqladmin操作会比较简单。

格式:mysqladmin -u用户名 -p旧密码 password 新密码 
    例子:mysqladmin -uroot -poldpassword password your_password 
    只用mysqladmin的时候,会出现一个warning警告信息:Warning: Using a password on the command line interface can be insecure.,这个没关系,是提示你,你直接在cmd下使用明文设置密码的时候,是不安全的,因为别人可以通过翻看你输入指令的历史记录来查看到你设置的密码,所以提示你一下
   忘记root密码的时候,可以这样:

方法一: 通过配置文件跳过MySQL登录授权 然后修改密码

        1. 在这里设置密码主要是为了解决:ERROR 1045 (28000): Access denied for user ‘root'@‘localhost' (using password: NO)的问题

        2. 首先停止MySQL服务,输入命令行net stop mysql
        C:\WINDWOS\SYSTEM32>
        net stop mysql

        3. 在D:\Mysql\mysql-5.7.27-winx64目录下找到my.ini,在[mysqld]字段下任意一行添加skip-grant-tables,保存即可(跳过授权,为的是登录MySQL不要密码)

        4. 重启MySQL,输入启动命令:net start mysql,出现以下提示证明MySQL启动成功
           C:\WINDWOS\SYSTEM32>
           net start mysql

        5. 在输入命令mysql -u root -p,不需要输入密码,直接回车
           C:\WINDWOS\SYSTEM32>
           mysql -u root -p

           进入MySQL成功!哈哈,来到这一步后就应该值得高兴一下了
		
		6. 改密码:update user set password=password("your_password") where user="root"; 
    7. 刷新权限:flush privileges; 。凡是涉及到密码修改或者后面我们会学到的权限修改,修改完之后全部要再执行一下这一句
    8. 退出 quit
    9. 注销系统,再进入,使用用户名root和刚才设置的新密码登录

方法二: 关闭正在运行的MySQL服务,net stop mysql(这个mysql是你添加的mysqld到系统服务时的服务名)

       1. 打开DOS窗口,转到mysql\bin目录。 
    2. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证,因为之所以mysql启动之后,客户端连接的时候需要登陆认证,输入密码什么的,是因为mysql服务端启动的时候,加载了自己内部的一些权限相关信息的授权表、权限认证表什么的,这样就要求客户端必须有认证,如果启动的时没有加载这些表和设置,那么我们客户端再进行登陆的时候,就不需要认证了,那么就可以登陆上了,登陆之后,我们到mysql这个存有所有用户信息的表中去修改root用户或者别的用户的密码了,但是这样搞需要关闭服务端

      注意一个问题,如果我们直接使用的上面这个指令,也即是mysqld --skip-grant-tables,也就是直接通过mysqld启动的mysql服务的话,我们就不能通过net stop mysql的方式来关闭mysql服务了。但是可以通过别的方式来关闭 杀进程的方式 tasklist |findstr mysqld找到这个mysqld服务的端口号,然后taskkill /F /PID 端口号来杀死这个mysql服务的进行,以后就可以使用net start/stop mysql的方式来启动和关闭了。

    3. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录 

    4. 输入mysql回车,如果成功,将出现MySQL提示符 mysql>
    5. 连接权限数据库: use mysql;
    6. 改密码:update user set password=password("your_password") where user="root"; 
    7. 刷新权限:flush privileges; 。凡是涉及到密码修改或者后面我们会学到的权限修改,修改完之后全部要再执行一下这一句
    8. 退出 quit
    9. 注销系统,再进入,使用用户名root和刚才设置的新密码登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值