mysql5.7允许外网_设置mysql 5.7 可以外部访问的办法

这里主要介绍在不知MySQL的root密码的情况下,使用--skip-grant-tables关闭MySQL服务器的认证,从而可以重置root的密码。MySQL版本为5.7。

1、关闭MySQL

sudo service mysqld stop

sudo mysqld --skip-grant-tables --skip-networking &

--skip-grant-tables:此选项会让MySQL服务器跳过验证步骤,允许所有用户以匿名的方式,无需做密码验证直接登陆MySQL服务器,并且拥有所有的操作权限。

--skip-networking:此选项会关门MySQL服务器的远程连接。这是因为以--skip-grant-tables方式启动MySQL服务器会有很大的安全隐患,为了降低风险,需要禁止远程客户端的连接。

3、本地连接mysql

shell> mysql

--skip-grant-tables已经关闭MySQL服务器的认证,以匿名方式,无需密码即可连接。

4、重置密码

在重置密码前,先要重载授权表:

mysql> FLUSH PRIVILEGES;

MySQL 5.7.6+:

mysql> ALTER USER root@localhost IDENTIFIED BY MyNewPass;

MySQL 5.7.6以及之后的版本,使用ALTER USER语法来修改密码。

MySQL 5.7.5以及之前的版本

mysql> SET PASSWORD FOR root@localhost = PASSWORD(MyNewPass);

MySQL 5.7.5以及之前的版本使用SET PASSWORD语法修改密码。

如果上面的方法修改密码有错,可以直接修改mysql.user表:

UPDATE mysql.user SET authentication_string = PASSWORD(MyNewPass)

WHERE User = root AND Host = localhost;

FLUSH PRIVILEGES;

注意:mysql5.7 user表里已经去掉了password字段,改为了authentication_string。

5、重启服务器

service mysqld restart

因为之前使用--skip-grant-tables启动,所以需要重启mysql服务器,去掉--skip-grant-tables。

参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

这里主要介绍在不知MySQL的root密码的情况下,使用--skip-grant-tables关闭MySQL服务器的认证,从而可以重置root的密码。MySQL版本为5.7。 1、关闭MySQL sudo service mysqld stop sudo mysqld --skip-grant-tables --skip-networking & --skip-grant-tables:此选项会让MySQL服务器跳过验证步骤,允许所有用户以匿名的方式,无需做密码验证直接登陆MySQL服务器,并且拥有所有的操作权限。 --skip-networking:此选项会关门MySQL服务器的远程连接。这是因为以--skip-grant-tables方式启动MySQL服务器会有很大的安全隐患,为了降低风险,需要禁止远程客户端的连接。 3、本地连接mysql shell> mysql --skip-grant-tables已经关闭MySQL服务器的认证,以匿名方式,无需密码即可连接。 4、重置密码 在重置密码前,先要重载授权表: mysql> FLUSH PRIVILEGES; MySQL 5.7.6+: mysql> ALTER USER root@localhost IDENTIFIED BY MyNewPass; MySQL 5.7.6以及之后的版本,使用ALTER USER语法来修改密码。 MySQL 5.7.5以及之前的版本 mysql> SET PASSWORD FOR root@localhost = PASSWORD(MyNewPass); MySQL 5.7.5以及之前的版本使用SET PASSWORD语法修改密码。 如果上面的方法修改密码有错,可以直接修改mysql.user表: UPDATE mysql.user SET authentication_string = PASSWORD(MyNewPass) WHERE User = root AND Host = localhost; FLUSH PRIVILEGES; 注意:mysql5.7 user表里已经去掉了password字段,改为了authentication_string。 5、重启服务器 service mysqld restart 因为之前使用--skip-grant-tables启动,所以需要重启mysql服务器,去掉--skip-grant-tables。 参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
经验分享 程序员 微信小程序 职场和发展