格式: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一样。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)