python怎么连接远程数据库

python怎么连接远程数据库,第1张

1、进入mysql,创建一个新用户test:

格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"

grant all privileges on *.* to [email protected] identified by "123456"

或者

grant select,update,insert,delete on *.* to [email protected] identified by "123456"

2、 ./mysqladmin -uroot -ppwd reload

记住:对授权表的任何修改都需要重新reload

这时我们应该可以从192.168.0.2来远程管理192.168.0.1的数据库了

下面就是该脚本radius.py,其中出现三个日期:10天以后的日期future、今天的日期now、用户到期时间userdate,如果userdate <= future 并且 userdate >= now,那么向radreply表中插入一行,向用户提示到期时间,及时缴费;如果userdate <now,那么将该用户的状态设为停机,不允许其再登陆。

#! /usr/local/python/bin/python

# -*- coding: UTF-8 -*-

#引入模块

import MySQLdb

import datetime

#格式化日期,只有相同格式的日期才能进行比较

future = (datetime.date.today() + datetime.timedelta(10)).strftime("%Y-%m-%d")

now = (datetime.date.today()).strftime("%Y-%m-%d")

#这里就是连接远端数据库了

conn = MySQLdb.connect (host = "192.168.0.1",

user = "test",

passwd = "123456",

db = "radius")

cursor = conn.cursor ()

cursor.execute ("SELECT login_name,id,last_date FROM customer where last_date!='' and type='包月' and status='开通'")

使用Python连接数据库首先需要安装Python的数据库驱动。

我的本地只装了Python,并没有装MySQL,当我使用命令:

sudo pip install mysql-python

安装驱动(也就是MySQLdb模块)的时候出现如下错误:

EnvironmentError: mysql_config not found

查资料 知道是因为没有安装下面两开发包:

libmysqld-dev

libmysqlclient-dev

安装:

sudo apt install libmysqld-dev

事实上用apt安装第一个之后,第二个也已经存在了。再次尝试安装mysql-python就成功了。

现在尝试远程连接数据:

import MySQLdb

conn = MySQLdb.connect(host = '×××××××××××××', # 远程主机的ip地址,

user = 'root', # MySQL用户名

db = 'alimusic', # database名

passwd = '××××××', # 数据库密码

port = 3306, #数据库监听端口,默认3306

charset = "utf8") #指定utf8编码的连接

cursor = conn.cursor() # 创建一个光标,然后通过光标执行sql语句

cursor.excute("select * from table1 limit 10")

values = cursor.fetchall() # 取出cursor得到的数据

cursor.close()conn.close() #最后记得关闭光标和连接,防止数据泄露

如果excute()执行的是插入数据的代码,那么在执行完成之后需要调用

cursor.commit()

才能把结果写入数据库

中文乱码

编码错误在任何时候都必须重视的问题,由于连接数据库涉及到多个层次,比如数据库服务器编码,创建的database编码,table的编码,连接(也就是上面的conn)编码。如果出现乱码,需要检查上述的每一个环节。这里记录几个查询各种编码的方式:

查询数据库的各种编码:

show variables like "%char%"

查询某个数据库的默认编码

show create database databasename

查询某张表的默认编码

show create table tablename

最好在create数据库或者表的时候在创建语句后面指定具体的编码方式:default character set utf8

在mac上用python连接远程mysql数据库需要在本机安装mysql吗

mysql-python 是需要本地安装了mysql才行。你安装的xmapp里面的mysql, mysql-python可能没找到正确的配置。

如果不是生产环境,使用 mysql-connector 替代,这个是 mysql官方推荐的驱动,纯python实现。不需要本地配置本地mysql。使用方法和 mysqldb一样。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6617227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存