方法一:
1、mysql提供跳过访问控制命令行参数(前提是在执行这条命令之前必须杀掉mysql),找到mysqld_safe(/usr/bin/mysqld_safe)
cd /usr/bin
mysqld_safe --skip-grant-tables&
然后显示启动mysql即可,输入:mysql -u root 即可进入
use mysql;
update user set password=password("123456") where user="root';
flush privilegies;
quit;
重启mysql即可:
/etc/init.d/mysql(or mysqld) restart
重新进入mysql,就需要输入密码才能进入,输入刚才修改的密码即可
方法二:
首先确认服务器处于安全的状态,也就是没有人能够任意地连接数据库。因为在重新设置mysql的root密码期间,mysql数据库完全处于没有密码保护的状态下,其他的用户也可以任意地登录和修改mysql的信息。可以采用将mysql对外的端口封闭,并且停止apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的console上面的操作,并且拔掉网线
vi /etc/my.cnf
在[mysqld]的段中加上一句skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存并且退出vi。
重新启动mysql
/etc/init.d/mysql restart
然后输入:mysql -u root即可进入
重复上面的修改密码操作即可
网友评论