linux mysql密码忘了怎么办?

看了网上的修改my.cnf文件添加 skip-grant-tables,我通过xshell用空密码登陆数据库提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我用phpmyadmin登陆提示空密码禁止登陆
怎么办呢?

Linux:

MySQL root密码的恢复方法之一

如果忘记了MySQL root密码,可以用以下方法重新设置:

1.KILL掉系统里的MySQL进程;
killall -TERM MySQLd

2.用以下命令启动MySQL,以不检查权限的方式启动;
safe_MySQLd --skip-grant-tables &

3.然后用空密码方式使用root用户登录 MySQL;
MySQL -u root

4.修改root用户的密码;
MySQL> update MySQL.user set password=PASSWORD('新密码') where User='root';

MySQL> flush privileges;

MySQL> quit

重新启动MySQL,就可以使用新密码登录了。

MySQLroot密码的恢复方法二

有可能你的系统没有 safe_MySQLd 程序(比如我现在用的 ubuntu操作系统, apt-get安装的MySQL) , 下面方法可以恢复

1.停止MySQLd;
sudo /etc/init.d/MySQL stop
(您可能有其它的方法,总之停止MySQLd的运行就可以了)

2.用以下命令启动MySQL,以不检查权限的方式启动;
MySQLd --skip-grant-tables &

3.然后用空密码方式使用root用户登录 MySQL;
MySQL -u root

4.修改root用户的密码;
MySQL> update MySQL.user set password=PASSWORD('newpassword') where User='root';

MySQL> flush privileges;

MySQL> quit

重新启动MySQL
/etc/init.d/MySQL restart
就可以使用新密码 newpassword 登录了。

 # /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> update user set password=password(newpassword) where user=root;
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
enter password: <输入新设的密码newpassword>
mysql>

1.KILL掉系统里的MySQL进程;
killall -TERM MySQLd

2.用以下命令启动MySQL,以不检查权限的方式启动;
safe_MySQLd --skip-grant-tables &

3.然后用空密码方式使用root用户登录 MySQL;
MySQL -u root

4.修改root用户的密码;
MySQL> update MySQL.user set password=PASSWORD('新密码') where User='root';

MySQL> flush privileges;

MySQL> quit

重新启动MySQL,就可以使用新密码登录了。

# /etc/init.d/mysql stop

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

mysql -u root mysql

mysql> update user set password=password(newpassword) where user=root;
mysql> flush privileges;
mysql> quit

/etc/init.d/mysql restart

mysql -uroot -p

enter password: <输入新设的密码newpassword>
mysql>

/etc/init.d/mysql stop

mysqld_safe --user=mysql --skip-grant-tables --skip-networking & mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

mysql> FLUSH PRIVILEGES;

mysql> quit

/etc/init.d/mysql restart

mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>

重新装一个mysql

Enter password: <输入新设的密码newpassword>

mysql>

Linux:

MySQL root密码的恢复方法之一

如果忘记了MySQL root密码,可以用以下方法重新设置:

1.KILL掉系统里的MySQL进程;
killall -TERM MySQLd

2.用以下命令启动MySQL,以不检查权限的方式启动;
safe_MySQLd --skip-grant-tables &

3.然后用空密码方式使用root用户登录 MySQL;
MySQL -u root

4.修改root用户的密码;
MySQL> update MySQL.user set password=PASSWORD('新密码') where User='root';

MySQL> flush privileges;

MySQL> quit

重新启动MySQL,就可以使用新密码登录了。

1.以系统管理员身份登陆系统。

2.打开cmd-----net start 查看mysql是否启动。启动的话就停止net stop mysql.

3.我的mysql安装在d:\usr\local\mysql4\bin下。

4.跳过权限检查启动mysql.

d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables

5.重新打开cmd。进到d:\usr\local\mysql4\bin下:

d:\usr\local\mysql\bin\mysqladmin -u root flush-privileges password "newpassword"

d:\usr\local\mysql\bin\mysqladmin -u root -p shutdown 这句提示你重新输密码。

6.在cmd里net start mysql

7.搞定了。

楼上几个方法都行,如果搞不定,应该是有其他问题。好好检查一下