select user(); 查看当前用户信息
mysqladmin -uroot -p(默认是没有密码的所以不用输入直接空格) password “新密码”
mysqladmin -uroot -p password “123456”
mysql -uroot -p密码 登录root用户
mysql -uroot -p123456
注意使用管理员的cmd
1.停止服务 net stop MySQL或者直接运行win+r 输入services.msc打开服务管理找到mysql服务手动停止,这里并不推荐,太low了
2.mysqld --skip-grant-tables 这里是跳过授权表的意思,有的小伙伴可能是不太理解这条命令,需要说一下的是mysql是基于socket编写的一款软件,所以如果你是有学过socket的就会知道socket需要把用户名和密码都存放在一个文件中,而这条命令就是跳过不检查文件中内容,有点作弊的意思。
3.此时你重新cmd一个窗口 输入mysql -uroot -p 会惊喜的发现你没有输入密码但是进去了
4.这时你可以去修改自己想要的密码了 update mysql.user set password=password(“新密码”) where user=”root” and host=”localhost” (这里列举的是本地用户,请注意)
5.flush privileges 刷新授权表,让你修改的密码生效
6.那由于刚才我们已经又启动了mysql的进程,也就是步骤2,那么这时我们就需要去插死这个进程了,还是一样的使用管理员的cmd,输入tasklist |findstr mysql,找到进程的PID例如下面我复制的这行进程一样,PID就是5000。
mysqld.exe 5000 Services 0 5,840 K
小伙伴可以看自己电脑的进程是啥。这里需要补充说明的是如果你是一个小白,你可能连PID是什么都不知道,虽然这好像对学习mysql没有什么阻碍,但是你最好还是要去系统的看一下并发编程、进程、线程(协程)的内容(针对于你自己目前已经或者学习的语言,不用每一门都去看,语言都是相同的,主要看的是一种思维逻辑你懂吧),对后续的学习理解是有很大的帮助的
7.我们现在去杀死那个进程,输入taskkill /F /PID 5000(这里输入你自己的PID),这里执行完了命令你不放心可以回去执行tasklist |findstr mysql 查询是否还存在进程
8.到这里我们就可以正常的启动服务了,输入net start MySQL ,然后你再试试新密码吧,到这里密码修改应该是完成了。
设置密码都是和win10一样的操作
这里主要是说明忘记密码的操作
修改密码的逻辑和win10是一样的
这里首先说centos7 注意都要是root用户才行
systemstl stop mariadb 停止当前mysql服务 (centos6 service mysqld stop )
mysqld_safe --skip-grant-tables 跳过授权表
打开一个新的终端
mysql -uroot -p进入mysql
修改密码
update mysql.user set password=password(“新密码”) where user=”root” and host=”localhost”
生效密码
flush privileges
杀死mysql服务 (这里其实后面的操作可以并一步重启mysql服务就可以了,可以自己动手试试)
pkill -9 mysql
重启mysql服务
systemstl start mariadb (centos6 service mysqld start)
你再试试新密码
附
(centos6系统):service service_name (start|stop|restart|status)
(centos7系统):systemctl (start|stop|restart|status) service_name
字符编码的统一
\s 查看