1.1 下载Pymysql
Python3.x已经不支持mysql的连接了,只有3.4以前的支持mysql的连接。所以我们只能选择Pymysql。pymysql Mac版的安装包:链接:http://pan.baidu.com/s/1pLdphWJ 密码:bwzv(win系的自行下载哈)
1.2 安装Pymysql
下载好并解压后,用命令行进入解压好的文件夹内,执行安装
python setup.py install
当你看到finish时,证明你的python环境里面安装了pymysql
python
进入环境后输入:
import pymysql
许多的博客,总是会到上一步安装完之后,就说可以连接数据库了。比如下面这样:
conn=pymysql.connect(host='localhost',user='root',passwd='root',db='test',port=3306,charset='utf8')
然而,我的总是在报错(手动滑稽= =):
(2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 61] Connection refused
纳尼?说好的可以直接连接呢??这拒绝我的连接了,难道是我脸黑么。。。哦呵呵呵,当我发现这报错里面是MySQL的错误,我突然有种不好的预感,是不是要本机安装mysql了。不然上面那些user,什么password哪里来的?db数据库哪里来的?我是谁?我从哪里来的?
还是乖乖先去安装mysql再看看吧:
2.1 下载mysql
这安装包能下一年哦呵呵呵,还是祭出我的百度云神器吧:链接:http://pan.baidu.com/s/1kU6nt3p 密码:47j7(Mac版,win系自理哈)嗯,下好安装包,安装了,没毛病。奈何我的电脑一直卡死在最后一步,所以强制关机了几次才安装好的。。
注意了(敲黑板):安装完之后请务必把最后的弹窗截屏,那里面有足以令你绝望的乱码,没错,那就是初始密码(手动微笑)
然饿,你以为这样就完了么?要是不弹窗你可咋办呢哦呵呵?(手动滑稽)死活不弹窗,连个通知消息也不发的倒霉孩子往下看,已经记下了毒密码的宝宝可以直接连接了,哦,记得把你的密码修改了哟~
2.2 强制改密码
其实百度一下解决方法挺多的,可是没一个能解决我的问题,有些处理办法居然要进mysql操作环境之前,执行命令:mysql -p。。。你确定你是在强制改密码吗大兄弟?
最后我终于找到了,还好我没放弃。
当然,我们要选择不原谅,把它灭掉。我电脑又卡了,不过我选择了忽视它,直接进行第二步,所以至今我都不知道到底要不要关掉这个原谅色,先关掉再说吧。
sudo su
此时会叫你输入你的系统密码,你只管输入就好,因为它并不显示,但是真的是有输入进去的~
继续输入下面的代码,这是以安全模式启动mysql,没错,就是这一步救了根本不弹窗的我们:
mysqld_safe --skip-grant-tables &
我电脑这次很争气,一下子就运行成功了,如果不成功的倒霉孩子可以试试下面的方法(我是上面的方法成功了,下面的方法没成功):
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
mysql -u root
如果此时你的电脑进入了mysql操作环境,如下图,那么恭喜你,这是应该的好吗!捯饰半天就为了进这个环境也是不容易得很啊(微笑.jpg)
UPDATE mysql.user SET authentication_string=PASSWORD('xxx') WHERE User='root';
xxx那里填你的密码 xxx那里填你的密码 xxx那里填你的密码 root是你的用户名,也可以随便改
PS:我用的是5.7.10版本的mysql,如果不是5.7以上版本的,语句应该要用:
UPDATE mysql.user SET Password=PASSWORD('xxx') WHERE User='root';
xxx那里填你的密码 xxx那里填你的密码 xxx那里填你的密码 root是你的用户名,也可以随便改
终于可以理直气壮地连接了哦呵呵呵!
我们得建立一个数据库,才能知道我们要连到哪里,所以先进入mysql的操作环境:
mysql -u root -pxxx
xxx那里填你的密码 -p和xxx之间没有空格!
进入mysql的环境之后,输入命令:
create database test;
注意分号
嗯,果然,我们还是那么地不顺利,得到了这个报错我很开心,我要感谢所有支持我的人(微笑.jpg):
我知道,前面强制改密码违规操作被发现了呗~那我们百度一下,出来了解决方法,输入下面三条语句:
SET PASSWORD = PASSWORD('xxx');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
差不多效果就是这样子的:
create database test;
注意分号
废话不多说直接上图贴代码:
端口号是默认的3306,user是你的用户名,password是你的密码。没有报错,就证明连接成功啦!!撒花~
至此我们的Python3.x连接pymysql就大功告成啦~
memoryjdch编辑于2017.8.7