美文网首页
九、Mysql和Navicat的安装和pipeline中代码调试

九、Mysql和Navicat的安装和pipeline中代码调试

作者: 阿轲666 | 来源:发表于2017-06-12 13:13 被阅读0次

接下来就是将他们存储到mysql数据库中,那就用到了pipeline项目管道了。

一、Mysql和Navicat是什么

Mysql是数据库

Navicat是管理数据库的工具。

(一)Mysql数据库

1、数据库的安装和调试

MySQL是一个关系型数据库管理系统,目前属于Oracle旗下产品。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

下载地址为:

https://dev.mysql.com/downloads/mysql/

MySQL Community Server 5.7.18

记住以下自己下载的版本以后用的着

Mac OS X 10.12 (x86, 64-bit), DMG Archive331.7M的hm/sQEkjO6wS

记得保存最后弹出框中的密码(它是你mysql root账号的密码)

此时只是安装成功,但还需要额外的配置:

开启mysql服务

进入mac命令模式

mysql -u root -p

登录成功后,你可以通过下面的命令修改密码

SETPASSWORDFOR'root'@'localhost'=PASSWORD('XXXXXX');

启动mysql

mysql -u root -p

XXXXXX

启动成功

show databases;        显示数据库

quit          退出

brew installmysql

重新执行一遍brew installmysql

命令行提示:Warning:mysql-5.7.10alreadyinstalled,it's just not linked

Mac下MySQL卸载方法

先停止所有mysql有关进程

下面这堆,一行一行慢慢的输入,别着急

sudo rm /usr/local/mysql

sudo rm -rf /usr/local/mysql*

sudo rm -rf /Library/StartupItems/MySQLCOM

sudo rm -rf /Library/PreferencePanes/My*

vim /etc/hostconfig  (and removed the line MYSQLCOM=-YES-)

rm -rf ~/Library/PreferencePanes/My*

sudo rm -rf /Library/Receipts/mysql*

sudo rm -rf /Library/Receipts/MySQL*

sudo rm -rf /var/db/receipts/com.mysql.*

2、安装连接数据库中间的东西pymysql

之前用pip install mysqlclient安装失败,后来知道只有python2才可以用。python3要用pymysql这个小坑埋了我一个星期。

安装pymysql来替代mysqldb

pip install pymysql

pipeline中的代码如下:

classMysqlPipeline(object):

# 采用同步的方式写入mysql

def__init__(self):

self.conn = pymysql.connect(host='192.168.1.102',port=3306,user='root',password='198813',db='article_spider',charset='utf8',use_unicode=True)

self.cursor =self.conn.cursor()

defprocess_item(self, item,spider):

insert_sql ="""

insert into jobbole_article(title, url, create_date, fav_nums, praise_nums, comment_nums, front_image_url, front_image_path, content ,tags)  VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)

"""

self.cursor.execute(insert_sql,(item["title"], item["url"], item["create_date"], item["fav_nums"], item["praise_nums"], item["comment_nums"], item["front_image_url"], item["front_image_path"], item["content"], item["tags"]))

self.conn.commit()

(二)Navicat表格设计

python如何连接数据库呢?

对于一个外行的猿,折腾了不知道多少个日日夜夜才连接好。

setting中配置:

ITEM_PIPELINES= {

# 'mm.pipelines.MmPipeline': 300,

# 'scrapy.pipelines.images.ImagesPipeline': 1,

# 'mm.pipelines.ArticleImagePipeline': 1,

# 'mm.pipelines.JsonExporterPipleline': 2,

'ArticleSpider.pipelines.MysqlPipeline':1,

}

pipeline中配置,代码如下:

classMysqlPipeline(object):

def__init__(self):

self.conn = pymysql.connect(host='192.168.0.129',port=3306,user='root',password='198813',db='article_spider',charset='utf8',use_unicode=True)

self.cursor =self.conn.cursor ()

defprocess_item(self, item,spider):

insert_sql ="insert into jobbole_article(title, url, create_date, fav_nums) VALUES (%s, %s, %s, %s)"

self.cursor.execute ( insert_sql,(item["title"], item["url"], item["create_date"], item["fav_nums"]) )

self.conn.commit ()

纪念一下踩了无数坑的代码,以及慕课群里帮助过我的小伙伴们。

command+D可以循序进入“设计表”

相关文章

网友评论

      本文标题:九、Mysql和Navicat的安装和pipeline中代码调试

      本文链接:https://www.haomeiwen.com/subject/mfjlqxtx.html