在linux平台下使用mysql过程中忘记了root密码

在linux平台下使用mysql过程中忘记了root密码,下面来讲解下怎么进行重置mysql数据库root 密码:

1、首先停止mysql服务进程:

 1 service mysql stop 

然后编辑mysql的配置文件my.cnf(找不到这个文件时参照最后面备注)

1 vim /etc/my.cnf(注意:先把mysql服务进程关闭,把添加过的跳过验证信息删除,要不然对数据库安全威胁太大。)

找到 [mysqld]这个模块:

在最后面添加一段代码

1 skip-grant-tables   ##忽略mysql权限问题,直接登录

然后保存 :wq!退出

启动mysql服务:

1 service mysqld start

直接进入mysql数据库:

 [root@web1 ~]# mysql

 mysql> 

使用mysql表,然后进行修改mysql的root密码:

 
  mysql> use mysql; ##使用mysql数据库
 

  Database changed
  mysql> update user set password=password("123456") where user="root";##更新密码
  Query OK, 4 rows affected (0.00 sec)
  Rows matched: 4  Changed: 4  Warnings: 0
  
 mysql> flush privileges;##刷新权限
 Query OK, 0 rows affected (0.00 sec)
停止mysql服务

service mysql stop

然后修改/etc/my.cnf文件,将前面添加的skip-grant-tables注释掉

重新启动mysql服务

service mysql start

 

mysql -uroot -p ##使用新密码登录

mysql>

 

 

 

 

备注:

Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,

至于为什么没有这个文件而MySQL却也能正常启动和作用,在点有两个说法,

第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,

第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-default.cnf文件,这种说法仅限于rpm包安装的MySQL,

解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。

 

如果使用时遇到:You must SET PASSWORD before executing this statement的错误时执行下面语句:

SET PASSWORD=PASWORD('123456'),重新设置密码。

 

如果报:ERROR 1062(23000):Duplicate entry '%-root' for key 'PRIMARY'时可以不予理会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值