Linux下mysql5.7数据库root登陆的问题

本文最后修改时间:20180313mysql

root默认为空密码,默认远程没法登陆。
mysql5.7更新了user表,网上的方法试了不少,都有点问题sql

#先中止MySQL服务
$ sudo service msyql stop安全

#跳过安全检查
$ sudo mysqld_safe --skip-grant-tables &
若是出现以下报错信息
mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists
解决办法仍是很简单的
$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld
而后再执行
$ mysqld_safe --skip-grant-tables &socket

进入mysql
$ mysql -u root -p
#更改密码,mysql5.7中hash的列名为authentication_string,再也不是password了
mysql> UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='root';
#容许root登陆,这里改成容许从任意IP登陆,授予全部权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'new password' WITH GRANT OPTION;
#刷新权限
mysql> FLUSH PRIVILEGES
#从新启动MySQL服务
service msyql startcode

相关文章
相关标签/搜索