angular做的网站,免费静态网页托管,湖南二维码标签报价,网络服务主要包括什么为了安全#xff0c;mysql数据库默认只能本机登录#xff0c;但是在有些时候#xff0c;我们会有远程登录mysql数据库的需求#xff0c;这时候应该怎么办呢#xff1f;
远程访问mysql数据#xff0c;需要两个条件#xff1a;
首先需要mysql服务器将服务绑定到0.0.0.0…为了安全mysql数据库默认只能本机登录但是在有些时候我们会有远程登录mysql数据库的需求这时候应该怎么办呢
远程访问mysql数据需要两个条件
首先需要mysql服务器将服务绑定到0.0.0.0ip地址这样才能允许远程机器登录否则从网络层面就是不允许远程访问的。 其次需要在数据库里放开登录用户的远程访问权限一般放开访问者的单个源ip地址也可以全放开。当然全放开不如只放开单个ip安全。 下面是具体操作实例为mysql添加远程访问权限
1 mysql服务器打开远程访问权限
根据不同的版本修改mysql.conf 或my.cnf或my.ini等文件比如针对Ubuntu22.04版本具体为在/etc/mysql/mysql.conf.d/mysqld.conf文件中修改
# bind-address 127.0.0.1
bind-address 0.0.0.0将绑定ip从127.0.0.1修改成0.0.0.0,即可放开服务器远程访问权限。
2 登录的用户给它远程访问ip权限
具体为创建跟访问源ip绑定的用户然后赋予它访问某个数据库如auth库的权限。
CREATE USER trinity192.168.1.12 IDENTIFIED BY trinity;GRANT ALL PRIVILEGES ON auth.* TO trinity192.168.1.12 WITH GRANT OPTION;
如果是放开所有ip那么就在原来写ip地址的地方写“%”代表所有ip
CREATE USER trinity% IDENTIFIED BY trinity;GRANT ALL PRIVILEGES ON auth.* TO trinity% WITH GRANT OPTION;
为ip地址访问加上权限实践操作
首先看一下数据库中原账户的权限
mysql use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql SELECT host, user FROM user WHERE usertrinity;
--------------------
| host | user |
--------------------
| localhost | trinity |
--------------------
1 row in set (0.01 sec)host设为localhost证明该用户默认只能从localhost登录
在增加trinity192.168.1.2用户欧显示
mysql CREATE USER trinity192.168.1.2 IDENTIFIED BY trinity;
Query OK, 0 rows affected (0.11 sec)mysql SELECT host, user FROM user WHERE usertrinity;
----------------------
| host | user |
----------------------
| 192.168.1.2 | trinity |
| localhost | trinity |
----------------------
2 rows in set (0.00 sec)可见已经为trinity添加了从192.168.1.2这个机器登录的权限
进行测试
使用下面python语句可以mysql数据库
import pymysql # 配置数据库连接
config { host: 192.168.1.12, user: trinity, password: trinity, database: auth, charset: utf8mb4, cursorclass: pymysql.cursors.DictCursor
} try: # 建立数据库连接 connection pymysql.connect(**config)
测试通过