python 远程连接数据库出现的问题
来源:互联网 发布:网络推广类目 编辑:程序博客网 时间:2024/06/05 02:43
python进行远程连接数据库
python3 利用pymysql模块进行数据库远程连接,但是发现即使代码没有出错误,任然会连接失败。在此过程中出现两个错误,网上寻找一圈解决方案,终于解决问题了。作为刚刚接触python的小白来说,还是很兴奋的。
首先,给出远程连接数据库的代码
import pymysql#import#远程登陆数据库try: con = pymysql.Connect( host ='******',#远程登录主机的ip地址 port = 3306,#mysql服务器的端口 user ='root', #mysql的用户 passwd = 'Password',#密码 db = 'databasename' #需要的数据库名称 ) #获取本次的游标 cur = con.cursor()except pymysql.Error as e : print("Error %d: %s"%(e.args[0],e.args[1]))
注意:期间加了 try ....except 语句,进行异常捕捉,方便知道出现那些异常
出现问题:
其一:目的主机拒绝访问
分析:目的主机积极拒绝访问,后来经过网上查找。发现数据库的3306端口没有开启,只是本地主机才会登录。当远程登录时,当然是拒绝访问的。
解决方案:
首先查看端口是否打开 netstat -an|grep 3306
此图为开启3306端口的截图,之前显示为. . . 127.0.0.1:3306 . . .
打开mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1注销
截图最下面一行注销
重启动ubuntu
再次查看端口是否打开 netstat -an|grep 3306
此时端口3306已经打开
其二:继续报错。Access denide for user
分析:数据库通常只是在装数据库服务器本地才会直接链接。不允许远程连接数据库。所以,我们需要远程数据库对本地进行授权:
解决方案:
用root用户登陆数据库,然后:
grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
flush privileges; * 刷新刚才的内容*
格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码";
@ 后面是访问MySQL的客户端ip地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为
本地访问(那此用户就不能远程访问该mysql数据库了)。
同时也可以为现有的用户设置是否具有远程访问权限。如下:
use mysql;
update db set host = '%' where user = '用户名'; (如果写成 host=localhost 那此用户就不具有远程访问权限)
flush privileges;
grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
最后,问题决解了!
给出成功后的截图
- python 远程连接数据库出现的问题
- Win7远程连接SQL Server数据库出现的问题
- MySQl-python模块,python连接数据库出现的问题
- 数据库远程连接的问题
- MySQL远程连接出现的问题
- win7 64位安装vs2013后连接远程数据库出现下面的问题:
- Intellij idea中连接远程数据库出现乱码问题的解决
- 远程无法连接数据库的问题
- mysql远程无法连接数据库的问题
- python连接远程MySQL数据库
- VC连接ACCESS数据库出现的问题
- ssh连接数据库出现的问题
- kettle 连接数据库出现的问题
- jsp连接mysql数据库出现的问题
- 连接数据库时出现的乱码问题
- 远程连接SQL SERVER数据库,连接不上的问题
- mariadb的python连接,远程连接,字符编码问题总结
- 最近在配mysql和web分离的服务器时所出现的phpmyadmin无法连接远程数据库问题
- 随记
- Spring Cloud Netflix Eureka源码导读与原理分析
- 通过爬虫迁移CSDN博客
- 数据结构二叉树BinaryTree之java构建二叉树
- JavaSE:冒泡法排序
- python 远程连接数据库出现的问题
- 一位老鸟对 23 种设计模式的有趣见解
- 线程学习笔记(五)-线程让步和线程守护
- 网站开发基础PHP+JAVA实现静动分离
- seo搜索引擎优化
- HashMap/TreeMap/Hashtable源码解析
- java数组和Object关系
- 为何要用maven tomcat插件来启动web工程?
- 在Linux中加入cron任务