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

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

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

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

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

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

 安装 

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

选项 含义
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 8.0.18安装配置及python2.7连接设置 

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

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

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

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

 接下来选择强密码

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

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

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

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

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

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

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

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

 直到安装 finish,  结束

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

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

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

 path 后加上 ;%MYSQL%\bin

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

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

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

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

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

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

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

就可以使用密码登录了:

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

 修改 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;

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

为什么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()
mysql 8.0.18安装配置及python2.7连接设置

 

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

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

 

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

 

 

相关文章: