如果知道原来的密码
方法一:
在mysql系统外,使用mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【输入原来的密码】
方法二:
通过登录mysql系统,
mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> exit;
注意:如果Mysql的版本是5.7及以上的话update语句如下:
mysql> update user set authentication_string=passworD("test") where user='root';
如果不知道原来密码
以安全模式启动mysql,可以直接以root身份登录,然后重设密码。下面是具体步骤
停掉在运行的MySQL服务:
sudo service mysql stop
以安全模式启动mysql:
sudo mysqld_safe --skip-grant-tables --skip-networking &
直接用root登录,无需密码:
mysql -u root
重设密码:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
mysql> flush privileges;
退出mysql:
mysql > quit
重启mysql:
sudo service mysql restart
密码登录:
扫描二维码关注公众号,回复:
3187084 查看本文章
mysql -u root -p
异常处理
修改密码报错,提示ERROR 1054 (42S22)
在修改密码的时候,网上比较多的文档都是提示输入一下命令修改:
mysql> update user set password=PASSWORD("password") where User='root';
结果使用这个命令的时候报错:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
原因是从mysql 5.7开始,password字段被替换为了authentication_string,可以使用下面的命令来修改
update user set authentication_string=password('password') where user='root';