一开始安装教程安装myslqDB,装了两次发现装不上,因为我是Ubuntu中默认安装的是pythohn3.6版本的,用pip3 install mysqlDB当然安装不上,因为这个模块不支持python3。
百度了发现python3有自己的新的模块包可供使用直接pip3 install pymysql 就可以使用pymysql来操作mysql数据库。
但是还不能,我发现直接连接mysql数据库是不行的,Error报错,提示无法连接。我ping 我的局域网主机ip:192.168.1.200(这个每个人不同自己windows下ipconfig,Ubantu下ifconfig看一下)。
查了一下教程,分为两步。
第一步修改mysql数据库权限,第二部是防火墙中添加入栈规则。
本人mysql数据库安装在Windows下,ubantu1.8放在虚拟机中拥有自己的ip地址,所以可以看做是局域网中的两台主机。
第一步参考连接:https://www.2cto.com/database/201701/587097.html
一、运行cmd,输入mysql -u root -p。(我的操作完成了,下面借用一下qq_30776829CSDN用户的图)
二、输入mysql数据库密码,enter确定。
三、输入 use mysql
四、输入grant all privileges on *.* to root@'%' identified by"root"; 目的是设置局域网内所有ip都可以访问本机。allprivileges是所有的权限,应该就是连接好了以后本地的数据库所有的权限别人都可以访问了。%的意思是所有用户,如果改成某一个ip就是给了这个人访问本地数据库的权限。
五、第四步:显示Query OK表示操作成功。然后需要刷新数据库,输入: flush privileges;
第二步:添加入栈规则,参考https://www.2cto.com/database/201708/667024.html
最后ubantu下进行连接测试,建立test.py文件,写入如下代码:
#导入pymysl包
import pymysql
#连接数据库
db = pymysql.connect('192.168.1.200', 'root', 'root', 'testdb', charset='utf8' )
#使用cursor()方法创建一个游标对象
cursor = db.cursor()
#使用execute()方法执行SQL语句
cursor.execute("SELECT VERSION()")
#使用fetall()获取全部数据
#data = cursor.fetchall()
data = cursor.fetchone()
print ("Database version : %s " % data)
#打印获取到的数据
#print(data)
#关闭游标和数据库的连接
cursor.close()
db.close()
在终端中进行运行,结果如下: