pymysql:Mysql拒绝从远程访问的解决办法

pymysql连接数据库

# 导入pymysql模块
import pymysql # 连接database
conn = pymysql.connect(
host="192.168.1.1",
user="root",
password="password",
db ="test",
charset ="utf8") # 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor() # 执行完毕返回的结果集默认以元组显示
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 定义要执行的SQL语句
sql = "select * from account" # 执行SQL语句
cursor.execute(sql) # 关闭光标对象
cursor.close() # 关闭数据库连接
conn.close()

  

报错内容

Traceback (most recent call last):
File "C:/Pycham/Mysql/test.py", line 10, in <module>
charset ="utf8")
File "C:\Pycham\venv\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\Pycham\venv\lib\site-packages\pymysql\connections.py", line 325, in __init__
self.connect()
File "C:\Pycham\venv\lib\site-packages\pymysql\connections.py", line 598, in connect
self._get_server_information()
File "C:\Pycham\venv\lib\site-packages\pymysql\connections.py", line 975, in _get_server_information
packet = self._read_packet()
File "C:\Pycham\venv\lib\site-packages\pymysql\connections.py", line 684, in _read_packet
packet.check_error()
File "C:\Pycham\venv\lib\site-packages\pymysql\protocol.py", line 220, in check_error
err.raise_mysql_exception(self._data)
File "C:\Pycham\venv\lib\site-packages\pymysql\err.py", line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1130, "Host '219.139.78.81' is not allowed to connect to this MariaDB server")

  

解决办法

Mysql必须开启远程访问权限 才允许远程连接。 
root帐户是无法远程登陆的,只可以本地登陆。

  

1.使用mysql数据库

use mysql;

  

2.添加用户允许从任何主机连接到mysql服务器

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

允许任何IP地址(上面的 % 就是这个意思)的电脑使用root用户 和密码(password)来访问这个MySQL Server 。

如果你想允许用户root从ip为192.168.1.1的主机连接到mysql服务器,并使用password作为密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.1' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

  

如果你想允许用户root从ip为192.168.1.1的主机连接到mysql服务器的dk数据库,并使用password作为密码

GRANT ALL PRIVILEGES ON dk.* TO 'root'@'192.168.1.1' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

  

3.及时生效

FLUSH PRIVILEGES

  

4.测试

# 导入pymysql模块
import pymysql # 连接database
conn = pymysql.connect(
host="192.168.1.1",
user="root",
password="password",
db ="test",
charset ="utf8") # 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor() # 执行完毕返回的结果集默认以元组显示
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 定义要执行的SQL语句
sql = "select version()" # 执行SQL语句
cursor.execute(sql) # #使用fetchone()方法获取一条数据
data = cursor.fetchone()
print("Mysql version : %s"%data) # 关闭光标对象
cursor.close() # 关闭数据库连接
conn.close()

pymysql:Mysql拒绝从远程访问的解决办法的更多相关文章

  1. Python:MySQL拒绝从远程访问的解决方法

    MySQL连接数据库 #!/usr/bin/python # -*- coding: UTF-8 -*- import pymysql # 打开数据库连接 db = pymysql.connect(& ...

  2. MySQL数据库不能远程访问的解决办法

    MySQL数据库不允许从远程访问怎么办? 下面提供两种方法: 1.改表法 MySQL的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 ...

  3. MySQL 5.7 Command Line Client输入密码后闪退和windows下mysql忘记root密码的解决办法

    MySQL 5.7 Command Line Client输入密码后闪退的问题: 问题分析: 1.查看mysql command line client默认执行的一些参数.方法:开始->所有程序 ...

  4. Loadrunner参数化连接oracle、mysql数据源报错及解决办法

    Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...

  5. MySQL数据库忘记root密码解决办法

    MySQL数据库忘记root密码解决办法 1.在运行输入services.msc打开服务窗体,找到MYSQL服务.右键停止将其关闭.如图:

  6. 【MySQL】JDBC连接MySQL的一些问题以及解决办法

    [MySQL]JDBC连接MySQL的一些问题以及解决办法 http://blog.csdn.net/baofeidyz/article/details/52017047

  7. [原创]MySQL数据库忘记root密码解决办法

    MySQL数据库忘记root密码解决办法 1.在运行输入services.msc打开服务窗体,找到MYSQL服务.右键停止将其关闭.如图:

  8. [异常篇]001.MySQL数据库忘记root密码解决办法[转载]

    MySQL数据库忘记root密码解决办法 1.在运行输入services.msc打开服务窗体,找到MYSQL服务.右键停止将其关闭.如图: 2.在运行输入cmd打开终端. 3.找到MYSQL的安装目录 ...

  9. mysql 数据库导入数据报错MySQL server has gone away解决办法

    mysql 数据库导入数据报错MySQL server has gone away解决办法: 进入数据库执行以下命令即可: set global wait_timeout = 2880000; set ...

随机推荐

  1. Confluence 6 通过 SSL 或 HTTPS 运行 - 备注和问题解决

    备注 在创建证书时候的背景信息: 'keytool -genkeypair' 命令将会创建秘钥对,包括公钥和关联的私钥,然后存储到  keystore 中.这个命令打包公钥为  X.509 v3 自签 ...

  2. Netty简单聊天室

    1.创建maven项目,在pom.xml中引入netty的jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...

  3. cf1140E 回文串+染色方案dp

    有点硬核的dp..要用到一个结论.. /* 把原串拆成奇偶串,再拆成极大连续的-1串:该串两端都是非-1数,中间都是-1,并且下标要么都是偶数,要么都是技术 然后对所有这些串进行dp,dp[i][0] ...

  4. Python使用re模块实现正则表达式操作

    Python提供了re模块,用于实现正则表达式的操作.在实现时,可以使用re模块提供的方法(如search().match().findall()等)进行字符串处理,也可以先使用re模块的compil ...

  5. 开放系统的直连式存储(Direct-Attached Storage,简称DAS)

    开放系统的直连式存储(Direct-Attached Storage,简称DAS)已经有近四十年的使用历史,随着用户数据的不断增长,尤其是数百GB以上时,其在备份.恢复.扩展.灾备等方面的问题变得日益 ...

  6. spring cloud 使用spring cloud bus自动刷新配置

    Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如RabbitMQ.Kafka等)连接分布式系统的节点,这样就可以通过Spring Cloud Bus广播配置的变化 ...

  7. 阻止Java反编译蛋疼方法

    public class landv { private static String companyName="landv测试"; public static void main( ...

  8. 一脸懵逼学习Hdfs---动态增加节点和副本数量管理(Hdfs动态扩容)

    1:按照上篇博客写的,将各个进程都启动起来: 集群规划:    主机名        IP                安装的软件                    运行的进程   master ...

  9. 各厂商服务器存储默认管理口登录信息(默认IP、用户名、密码)收集

    666:https://blog.csdn.net/xiezuoyong/article/details/84997917

  10. HTTP max-age与Expires的分别

    主要重点在于我们要明白一个相对(Expires)一个绝对(max-age). 分别 max-agemax-age是HTTP/1.1中,他是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对 ...