在开发测试环境,有时为了方便我们需要让root用户也可以远程连接。下面就讲一下如何设置。
简明教程 连接mysql不废话3行命令搞定,不明白的看下面分步讲解。
mysql -uroot -pmima -h127.0.0.1
设置允许root远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
这样就搞定了。
分步讲解 判断是否可以远程连接首先执行本地连接是可以正常连接的,命令如下:
mysql -uroot -pmima -h127.0.0.1
可 以正常连接。
但是执行以下命令
mysql -uroot -pmima -h192.168.158.46
-h
后面换成你的mysql数据的ip
ERROR 1045 (28000): Access denied for user 'root'@'NTGL26SPKRZIA8X' (using password: YES)
返回结果如上说明,不允许root远程连接。
允许root过程连接 首先连接数据库比如:我这里是
mysql -uroot -pmima -h127.0.0.1
为了方便copy,我把前面的mysql>
省略了,比如:mysql>use mysql;
选择mysql数据库
use mysql
设置访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
其中"."代表所有资源所有权限, “‘root’@%”其中root代表账户名,%代表所有的访问地址。IDENTIFIED BY ‘密码’,这里换成数据库root用户的密码,WITH GRANT OPTION表示允许级联授权。
刷新访问权限表FLUSH PRIVILEGES;
查看用户表验证是否添加成功
SELECT User, Password, Host FROM user;
返回结果如下:
mysql> SELECT User, Password, Host FROM user;
+---------+-------------------------------------------+-----------+
| User | Password | Host |
+---------+-------------------------------------------+-----------+
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | localhost |
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | 127.0.0.1 |
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | ::1 |
| teacher | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | % |
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | % |
+---------+-------------------------------------------+-----------+
5 rows in set (0.00 sec)
出现
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | % |
就表示成功了。 至此我们可以远程使用root了。
参考https://zhuanlan.zhihu.com/p/60539230