基于本地项目的远程配置(部署+数据库)和MySQL Server数据Tables的可视化实现
我们经常使用python处理数据,一般会将数据存入MySQL Server的数据库中,方便以后的调用。为了实现我们的目标,我们这一介绍一个完整的项目部署方案。
首先,我们将本地项目部署到服务器上。我们之所以不直接在服务器上运行项目:一方面,我们希望使用远程服务器的快速处理能力来运行项目。另一方面,我们希望在本地监控运行情况,随时做出调整。
一、本地项目远程化
通过Pycharm IDE将本地的项目部署到远程服务器上。我们首先在本地创建一个python的开发项目。然后我们点击工具栏上的Tools——>development——>Configuration
建立连接
首先点击左上方的“+”号,为连接的服务器创建名称,然后点击图中3位置,添加SSH连接的configuration信息
SSH Configuration需要添加的信息如下:
- HOST:连接主机的地址
- User Name:连接主机上你的用户名称
- Authertication type:选择验证方法(password密码)
- Password:输入密码
最后,点击测试连接,显示成功就表示没问题!
文件和代码上传地址
连接成功之后,点击apply则自动退出,点击图中Mapping。可以看到有local path和Deployment path。
- local path:就是本地项目(数据+代码)的地址
- Deployment path:就是项目需要上传的地址,点击后会自动弹出服务器上文件供选择。
选择完成后,点击应用即可。到此项目的远程位置部署已完成。接下来是连接远程服务器上的python解释器。
python interpreter
首先进入python Interpret setting界面
- 1 点击按钮 1 选择Add
- 2 选择SSH interpreter
- 3 选择存在的server configuration
点击了Next之后,需要配置python解释器的位置,已经需要同步远程代码的位置。 - 1 python解释器选择服务器端的。如果不清楚服务器端的python在什么位置,或者不清楚如何在服务器端创建针对特定环境的虚拟python环境。请参考文章
- 2 Sync folders: 建议选择项目部署的位置,确保代码和文件在一个地方便于读写。
最后点击finish,完成全部配置
到目前位置,所有的配置已经完成。等待项目上传完成之后,即可在本地pycharm上编写项目。远程运行之后在本地查看结果和迭代项目。
二、远程数据库部署(MySQL)
在linux服务器上安装MySQL数据库
安装
使用dnf对MySQL进行安装。
sudo dnf install @mysql
激活MySQL的自动启动
sudo systemctl enable --now mysqld
检查MySQL的状态
sudo systemctl status mysqld
如果结果为下图,则表示MySQL已经正常运行
安全性设置
这一步是对服务器上MySQL的链接安全进行一系列的配置:其中具体的内容包括
(1)设置是否需要密码:y
(2)选择密码安全性要求:0(low),1(mid),2(high)
(3)键入自己的密码
(4)移除匿名用户:y (保证账户安全)
(5)是否不允许远程访问?:n(这里的问题是相反的哦,所以是n)
(6)是否移除test数据库:
(7)重载权限列表:
设置远程访问权限
为了能够进行远程访问服务器端的MySQL数据库,这里需要对数据库的host进行配置,因为默认的host=localhost,仅支持本地访问。因此这里需要开启host的访问权限。具体操作如下
进入MySQL数据库,其中-u表示以什么用户登录(紧跟的root表示为root用户),-p表示的是密码(可以不输入)
> mysql -uroot -p
进入MySQL之后,输入如下命令。其中update host=‘%’则是表示对来访的host不限。无论什么IP都可以远程访问
> use mysql;
> update user set host='%' where user='root';
更新设置的权限
>flush privileges
防火墙端口3306开启
因为需要远程访问,MySQL自动占用的端口就是3306,我们需要开启这个端口以保证远程访问的顺利链接。
检查打开的端口
sudo firewall-cmd --list-ports
如果3306端口不在已打开的端口list中,我们需要对其进行开启。
sudo firewall-cmd --add-port=3306/tcp --permanent
最后重载防火墙即可
sudo firewall-cmd --reload
测试链接
随便选取一个非本地主机的电脑,例如我们使用一个windows电脑,打开CMD。输入以下命令;
如:MySQL 连接远程数据库(192.168.5.116),用户名为“root”,密码“123456”
C:/>mysql -h192.168.5.116 -uroot -p
上图结果就表示已经完成,MySQL数据库可以远程访问。
三、运行项目并将数据存储到数据库
本地项目建立MySQL链接,首先要确保我们的MySQL已经开启。在PyCharm IDE中,我们可以直接选择Database进行链接。这样方便我们的对数据库数据读入和输出进行检查。
- 1 选择Databse
- 2 点击‘+‘来选择数据源为MySQL
然后在数据源内输入远程或者本地MySQL Server的地址信息,以及用户名和密码,从而保证PyCharm中项目实时和数据库链接。
- Name:自己随意取
- Host:MySQL所在的服务器地址,端口为默认3306
- User:为MySQL的用户名称
- Password:为该用户的密码(确保MySQL链接)
最后点击测试,显示成功则表示链接没有问题
随后,我们在Database项目栏中就可以看到连接的数据库,并且右键——>New——>Query Console。可以打开MySQL命令窗口,些mysql命令即可。
我们测试命令:
show database;
下图可以看到,show database命令会显示出当前所有的数据库。
最后,我们编写程序来向数据库写入数据,查询数据;这里我们使用的是pymysql包
import pymysql
#进行链接 # Connect to the database
connection = pymysql.connect(host='116.57.68.183', user='root', password='1993120@Chen', database='test_db')
#创建执行命令的光标
cursor = connection.cursor()
#执行一个查询,查询当前数据库版本
cursor.execute("SELECT VERSION()") #execute是执行sql语法的地方
data = cursor.fetchone()
print(f"database version is {data}")
#创建一个数据表EMPLOYEE()
cursor.execute("CREATE TABLE IF NOT EXISTS\
EMPLOYEE2(\
FIRST_NAME VARCHAR(25) ,\
LAST_NAME VARCHAR(25),\
AGE INT,\
SEX CHAR(1),\
INCOME FLOAT,\
DATIME DATE\
)")
#EMPLOYEE的数据
name = 'mac'
name2 = 'mohan'
age = '20'
sql = f"""INSERT INTO EMPLOYEE2(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME, DATIME)
VALUES ('{name}', '{name2}', {age}, 'M', 2000, '2021-10-11')"""
print(sql)
#执行操作
cursor.execute(sql) #sql语句执行
connection.commit() #数据库执行
#选取数据
sql2 = "SELECT * FROM EMPLOYEE WHERE INCOME > %s" % (1000)
cursor.execute(sql2)
result = cursor.fetchone() #选择匹配的一个数据
print(result)
更加具体的python操作MySQL的命令和方法参考:Reference
四、本地MySQL workbench链接远程数据库实现可视化
经历了前面的工作,我们已经在数据库中有了很多数据。除了读写数据之外,我们也希望可视化数据之间的关系,对数据进行分析。这个时候,我们可以借助MySQL workbench来实现
本地workbench和server链接
在主界面上,点击Database,在其中选择Reverse engineer
随后界面就会跳转到配置链接信息上。此时就需要一步步对链接信息和选择数据库,tables进行处理。我们建立和MySQL server的链接,输入配置信息。
选择需要的数据库
在选择对象的时候,可以根据自己的情况,筛选需要和不需要的tables
数据展示
按照自己的需求做进一步的处理即可。