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

本文最后修改时间:20180313

root默认为空密码,默认远程无法登录。
mysql5.7更新了user表,网上的方法试了很多,都有点问题

#先停止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 &

进入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 start

posted on 2018-03-13 20:08  woswod  阅读(306)  评论(0编辑  收藏  举报

导航