MySql实现远程连接,用户grant授权

1、进入mysql,创建一个新用户root,密码为root:

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;
grant select,update,insert,delete on . to root@192.168.1.12 identified by “root”;

原先数据表结构

mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-----------+------+-------------------------------------------+

执行上述语句后结果

mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+
| localhost    | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

可以看到在user表中已有刚才创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(授权法)

将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。
update user set host = ’%’ where user = ’root’;

将权限改为ALL PRIVILEGES

mysql> use mysql;
Database changed
mysql> grant all privileges  on *.* to root@'%' identified by "root";
Query OK, 0 rows affected (0.00 sec) 

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+
| localhost    | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| %            | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法)

use mysql;

update user set host = ‘%’ where user = ‘root’;

这样在远端就可以通过root用户访问Mysql.

### 配置 MySQL 允许远程用户连接 为了使 MySQL 数据库能够被远程用户访问,需按照特定流程调整服务器配置和用户权限。 #### 修改用户主机设置 进入 MySQL 后,通过 `USE mysql` 命令切换到管理数据库[^1]。接着查询现有用户的主机限制: ```sql SELECT user, host FROM user WHERE user = 'root'; ``` 若发现目标用户的 `host` 字段不是 `%` 或具体的 IP 地址,则意味着该用户仅限于本地登录。此时应更新此字段来放宽限制: ```sql UPDATE user SET host='%' WHERE user='your_username'; ``` 其中 `your_username` 应替换为实际使用的用户名;`'%'` 表示允许来自任意位置的请求。 #### 刷新权限并保存更改 完成上述操作之后,记得运行以下语句确保新设定生效: ```sql FLUSH PRIVILEGES; ``` 这一步骤至关重要,因为只有这样才能让 MySQL 重新加载授权表中的数据。 #### 编辑 MySQL 主配置文件 除了调整内部参数外,还需对外部防火墙做出相应改动。定位至 `/etc/mysql/my.cnf` 或者同级目录下的 `.ini` 文件,在 `[mysqld]` 下添加或修改如下选项以移除绑定地址约束: ```bash bind-address = 0.0.0.0 ``` 此举使得 MySQL 监听所有网络接口上的传入连接尝试[^2]。 #### 授权外部访问权限 对于希望授予某位具体用户完全控制权的情况,可采用授予权限的方式代替直接修改 `user` 表记录。例如给定名为 `remote_user` 的账号分配最高级别权限,并指定其可通过互联网接入服务端口: ```sql GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY 'password'; ``` 这里的 `'password'` 是指明的新密码字符串[^4]。 以上步骤完成后重启 MySQL 服务即可实现预期功能。需要注意的是安全性和性能之间的平衡——过度开放可能会带来潜在风险,因此建议根据实际情况谨慎选择合适的策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值