Python连外部MySQL的那些事(错误)

        首先用的是MySQLdb库,设增删改查函数;外部Mysql是在另一台电脑上,另一台电脑打开花生壳内网穿透,作为服务器;记得提前打开另一台电脑的防火墙里对应权限,方法如下面这个大佬的:使用python远程连接数据库 - 走看看根据web连接服务的原理,我们可以通过一台电脑连接我们另一台电脑上的数据库 一、开启数据库的权限1.Mysql:1)修改访问权限首先修改可以访问的ip,把‘localhost’全部修改为‘%’,打开chttp://t.zoukankan.com/future-dream-p-11080702.html错误小结:

1、(2002, "Can't connect to MySQL server on '127.0.0.1' (10061)")

没启动MySQL,记得把MySQL加入path中,然后cmd管理员打开,再启动

2、2003- Can‘t connect to MySQL server on ‘127.0.0.1‘

网上查到的这类解都是Navicat无法连到MySQL的错,是MySQL服务没开。但在Python连接MySQL时可能是IP没写对。

3、(2005, "Unknown MySQL server host '470011u8p9.qicp.vip:40605' (11001)")

没输对host,不是内网穿透IP,IP要写花生壳的外网IP,记得端口号要写花生壳给的,而花生壳在配置时候记得把内网对应的主机端口写为3306//这是MySQL的默认端口。

4、“ERROR 1049 (42000): Unknown database 'mysql80'”

MySQLdb.connect("xxx.xxx.xxx","root", "xxxxxx","biao",port=xxxx, charset='utf8' )


上面语句里db要填的是MySQL里创建的那个包,不是MySQL的名字。

5、mysql error 1146 ,table doesn't exist  和上面的错误一样,写的db是包名,不是表名

6、local variable referenced before assignment  这个问题出现在增的函数里,其实就是

sql = "INSERT INTO wendu(temp) VALUES ('%s')" % (t1)

语句,INTO后面跟的应该是表名

7、不能成功写入,但能查:上面代码里wendu括号里是列名

两个需要注意的问题:

db = MySQLdb.connect("xx.xx.xx","root", "xxx", "biao",port=xxx, charset='utf8' )

上面的connect函数,第一个是host,本地的就是主机名,外部的如果是另一台主机上的MySQL则是花生壳提供的外网IP。第二个是用户,默认为root。第三个是密码,就是MySQL的密码。第四个是包名,注意不是MySQL名或table的名,是创建的包的名字。第四个port,本机默认3306,外部的电脑接入用的是花生壳提供的那个。

"INSERT INTO wendu(temp) VALUES ('%s')" % (t1)

上面这一段增的语句,是“insert into table名(列名) values(类型)”%变量

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值