查看: 87|回复: 1

MySQL 数据库使用(二):配置、连接远端数据库

[复制链接]

5

主题

8

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-7-19 14:45:46 | 显示全部楼层 |阅读模式
Python3.7

pycharm

MySQL 8.0.13

驰网科技服务器 windows server 2016

Navicat

一、远程数据库的配置

1、在云服务器系统上配置 MySQL 数据库

安装方法与本地数据库配置方法相同
配置完毕后登入 MySQL 数据库,并且修改初始密码
2、修改访问权限

登入数据库后首先输入
use mysql选择 musql 数据库
select host,user,authentication_string,plugin from user;输入上述代码,可看到 root 用户的访问权限
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | root             | *FD571203974BA9AFE270FE62151AE967ECA5E0AA                              | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             |                                                                        | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+现在的 root 访问权限是仅限本地登录
下面我们输入
update user set host = "%" where user = "root";将 root 的访问权限从‘localhost’改写为‘%’,即所有人都接访问
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| %         | root             | *FD571203974BA9AFE270FE62151AE967ECA5E0AA                              | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             |                                                                        | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+此时,我们看到的 root 权限由‘localhost’改变为‘%’
至此,root 用户可以在任何 ip 访问这台数据库了
3、开放 3306 端口访问权限

将 root 的访问权限设置为‘%’后,cmd 输入
netstat-ano查看 3306 端口状态  
协议  本地地址          外部地址        状态           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       688
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       9372
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       9032
  TCP    0.0.0.0:7680           0.0.0.0:0              LISTENING       11348
  TCP    0.0.0.0:8733           0.0.0.0:0              LISTENING       4状态为:LISTENING
地址为:0.0.0.0:3306,其中 0.0.0.0 代表监听所有 IP
说明 3306 端口正常
下面配置防火墙
开启 win server 的控制面板,打开防火墙,在‘高级设置’的‘入站规则’中,点击‘新建规则’
创建一个应用于 TCP 的特定端口 - 3306 的端口规则
连接方式:允许连接
合适应用该规则:全选
至此,端口 3306 配置完毕
上述方案同时可通过关闭防火墙来实现
三、本地可视化界面连接远端数据库

利用 Navicat




连接成功
四、python 连接远端数据库

1、安装 PyMySQL

2、代码实现操作数据库

import pymysql


db = pymysql.connect('localhost','root','','zhilian_job')       # 创建连接对象,连接数据库
cursor=db.cursor()                                              # 创建游标对象

# 编写SQL语句
sql_create_table = """CREATE TABLE job_datas (                  
         jobName  VARCHAR(1000) ,
         positionURL  VARCHAR(1000),
         emplType VARCHAR(1000),  
         updateDate VARCHAR(1000),
         endDate VARCHAR(100),
         createDate VARCHAR(1000),
         salary VARCHAR(1000),
         welfare VARCHAR(1000),
         edu_level VARCHAR(1000),
         company_size VARCHAR(1000),
         company_name VARCHAR(1000),
         company_type VARCHAR(1000),
         company_URL VARCHAR(1000),
         apply_count VARCHAR(1000),
         exposure_count VARCHAR(1000),
         click_count VARCHAR(1000)
         );"""                                   

cursor.execute(sql_create_table)                                # 执行SQL语句
回复

使用道具 举报

4

主题

9

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 7 天前 | 显示全部楼层
非常好,顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表