大赵传奇

援引事类,扬搉古今,举要删芜,言辩而理切--QQ276605216

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

首先下载安装包,可以从官网,也可以是其他网站,我这里是 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安装路径的。

 

 

posted on 2020-09-11 06:14  赵长青  阅读(636)  评论(0编辑  收藏  举报