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
TCP0.0.0.0:135 0.0.0.0:0 LISTENING 688TCP0.0.0.0:445 0.0.0.0:0 LISTENING 4TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 9372TCP0.0.0.0:5040 0.0.0.0:0 LISTENING 9032TCP0.0.0.0:7680 0.0.0.0:0 LISTENING 11348TCP0.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配置完毕
上述方案同时可通过关闭防火墙来实现
4、阿里云安全组规则设置
端口与访问权限设置完毕,下面配置阿里云服务器的安全组规则
添加3306端口
至此,远程MySQL数据库配置完毕
我们可以在cmd下通过登录指令来访问远程数据库
三、本地可视化界面连接远端数据库
利用Navicat
连接成功
四、python连接远端数据库
1、安装PyMySQL
2、代码实现操作数据库
importpymysql
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语句