python2.7连接mysql_mysql 8.0.18安装配置及python2.7连接设置

本文详细介绍了如何在Windows 7上安装MySQL 8.0.18,特别关注了在Python 2.7中连接MySQL时遇到的‘Client does not support authentication protocol’错误。通过修改MySQL用户的认证方式,成功解决了连接问题。此外,还分享了设置环境变量、允许远程连接MySQL服务器的步骤,以及安装32位mysqldb以匹配ArcGIS 10.2自带的Python 2.7的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先下载安装包,可以从官网,也可以是其他网站,我这里是 MSI 版本的

需要注意的是,在windows7上安装,可能还需要.net framework 4.5.2 + Microsoft Visual C++ 2015 Redistributable , 微软官网下载即可

https://www.microsoft.com/en-us/download/confirmation.aspx?id=53587

安装

选项 含义

Developer Default默认安装类型

Server only仅作为服务器

Client only仅作为客户端

Full完全安装类型

Custom自定义安装类型

根据自己的需要。把左边的products添加到右边,右边就是要安装的组件。

我测试安装只选择了server only。因为我当时只想测试我的python 2.7能不能连接新版本的8 的mysql 。总是报错:

_mysql_exceptions.OperationalError: (1251, 'Client does not support authentication protocol requested by server; consider upgrading MySQL client')

添加了ssl=None都不能解决。其实这个提示很明显,就是客户端要升级。当初在.net 引用 mysql.data.dll也有类似错误,后使用高版本, 8版本的mysql.data.dll 解决的。

想必python2.7连接也是如此。

选择上面默认的独立mysql server ,下一步

接下来选择强密码

输入root 密码,可以继续add user 也可以等安装完成之后再添加

这里, Service Name 可以改为MySQL 方便以后查看和其他操作,也可不修改 ,记住就可以。next

其中有一处问题,next ,finish, 一路点下去

直到安装 finish,  结束

这个MSI 版本的也没有添加环境变量的,打开添加,

加上 MYSQL=C:\Program Files\MySQL\MySQL Server 8.0

path 后加上 ;%MYSQL%\bin

这样就可以了。(win+r 就可以直接运行 mysql)

第一次要登录设置一下密码,(可能安装时那个强密码不好记?)

比如使用初始设置的密码登录,即报错(为啥?)

但其实不用输入密码,直接回车,就可以登录。

再使用 alter user 'root'@'localhost' identified by 'root'  将密码修改 root .

就可以使用密码登录了:

修改 mysql 的允许远程连接。将Host设置为通配符%  Host设置了“%”后便可以允许远程访问。

不然会报 "Host '' is not allowed to connect to this MySQL server  错误。

use mysql; 切换数据库

select host from user where user='root'; 查看当前的HOST设置(远程IP)

update user set host = '%' where user ='root';

flush privileges;

为什么python2.7连接不上mysql 8?

百度了一下,

https://www.jianshu.com/p/afadf3a13b56

按这位老哥的意思,是保存密码的加密方式不同导致,改为以前的加密方式即可解决:

mysql -u root -p

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

mysql> FLUSH PRIVILEGES;

再次测试python程序

我的python27 访问这个mysql 8没问题了

#coding:utf-8

import xlrd

import MySQLdb

db = MySQLdb.connect(host="192.168.119.128", port=3306, user="root", passwd="root", db="mysql", charset='utf8',ssl=None)

cursor = db.cursor()

cursor.execute("SELECT VERSION()")

row = cursor.fetchone()

print "server version:", row[0]

cursor.close()

db.close()

顺便说一下,我安装的 mysqldb 32,这是因为arcgis 10。2自带的 python 2.7是32位的。

记得一路next 就可以。 64位不行,找不到 python安装路径的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值