啊啊啊啊啊啊啊啊啊啊啊啊啊啊其实是很基本很白痴的东西

我今天才知道居然能电脑主机访问云服务器数据库emmm,之前除了知道PHPAdmin别的都没试过,今天下午知道了,弄了一下就一路踩坑。为什么每次我都探索地这么不顺利呢呜呜呜。

可能是我不喜欢网上老师逼逼叨叨一堆废话还不如看博客直接敲代码...?

目标

利用电脑本地的Python语言对远程的云服务器数据库进行操作。(下面的第三种)

三种访问

开始不知道有管理员级别的root用户和其他对应数据库的一般用户之分。

宝塔面板截图

1. 友好的PHPAdmin

root 对应的密码在 红线那里。(明摆着)
而每个数据库对应的用户和密码在蓝色线那里。
这个一定要区分,从PhPAdmin进入输入密码的时候就不一样身份了!

2. 利用本地Putty登录云主机访问数据库

这个其实还是在云服务器里弄。
一样要填上对应的密码。
这个是一般用户登录,密码是上面蓝色线的好多星号那个!是一般用户进入,只能查询不能干别的!
一般用户
这个是管理员用户登录~
管理员登录

3. 这次是远程访问

首先!一定要开宝塔面板的防火墙...3306
在安全里找
其次!root账号的设置是不能远程访问的,因此需要开权限!!
在管理员进入后写下面两条命令。
命令
从这篇文章学的

第一条的意思是外部都能成为root访问,且密码为123456.

于是准备工作完成就可以通过Python代码访问啦!


import pymysql

# 建立连接
conn = pymysql.connect(
    host='123.56.59.157',
    port=3306,
    user='root',
    passwd='123456',
    db='test',
    charset='utf8'
)
# 建立游标
cursor = conn.cursor()

# 数据库操作
# (1)定义一个格式化的sql语句
sql = 'insert into test(author,funny_num,comment_num,content) values(%s,%s,%s,%s) '
# (2)准备数据
data = ('noone','30','100','好饿啊')
# (3)操作
try:
    cursor.execute(sql,data)
    conn.commit()
except Exception as e:
    print('插入数据失败',e)
    conn.rollback() #回滚

# 关闭游标
cursor.close()
# 关闭连接
conn.close()

这样就可以增加数据了,同样其他操作也可以!

这个简单的例子是从这个博客学着写的。

结果

总结

root 登录更改权限

宝塔防火墙端口开放

代码

Python和MySql交互思路:
mermaid
graph LR

A(开始) --> B[创建connection]
B --> C[获取cursor]
C --> D[操作]
D --> E[关闭cursor]
E --> F[关闭connection]
F --> G(结束)

(啊,这个不支持流程图绘制嘛!)
流程图

反思

反思其实是我的碎碎念。

感谢班长老大提醒的两点:宝塔端口开放和root用户的关系问题,当时聊天的时候没明白,弄出来想想真是一针见血。
还要感谢2U的之前的他无意间发给我的数据库列表图,哈哈哈哈,我当时忍不住想去请教他,但是又想能不能再想想呢,然后就想起来之前他发的数据库的列表,更印证了root用户的地位关系,啊好在没问,要不然这白痴问题...

我在想为什么我总是弄的磕磕绊绊呢,我是不是应该去先学习理论知识呢?可是我不喜欢听课就想动手玩...

我要向大神们学习,他们好厉害啊,这个Python直接连简直是新世界的大门,我又有新思路了!

小小一个问题终于笨笨地解决了!

Last modification:July 18th, 2020 at 11:31 pm
请赏我杯奶茶,让我快乐长肉