Ubuntu 修改 mysql 密码

今天重置 mysql 密码时,遇到两个坑,所以记录下来以后复习。

用 mysql --version 查看当前 sql 版本

mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

关闭 mysql

service mysql stop

跳过安全检查

/usr/bin/mysqld_safe --skip-grant-tables &

更改密码

这时候新开一个终端依次执行下列命令

mysql -u root
use mysql;
update mysql.user set authentication_string=password('newpassword') where user='root';

刷新权限

flush privileges;

退出 mysql

quit

重启 mysql

service mysql start

问 题

  1. 在跳过安全检查是遇到 mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

    解决办法:依次输入以下命令,创建必要文件

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
/usr/bin/mysqld_safe --skip-grant-tables &
  1. 使用update user set password=password("newpassword") where user="root";更新密码的时候遇到 Unknown column 'password' in 'field list' ,原因 5.7 版本下的 mysql 数据库下已经没有 password 这个字段了

    解决办法:用authentication_string代替password

    update mysql.user set authentication_string=password('newpassword') where user='root';
    

你可能感兴趣的:(Ubuntu 修改 mysql 密码)