我是靠谱客的博主 隐形缘分,最近开发中收集的这篇文章主要介绍手撕包菜 mysql_新版手撕包菜安装教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系统:centos 7 64位

一.获取ssbc源代码

1.环境检测(Ssbc当前版本是基于django1.8.1开发,所需python环境为python2.7.5以上。)

[root@localhost ~]# python -V

Python 2.7.5

执行python -V即可获取当前版本。

2.获取ssbc安装包

[root@localhost ~]# wget https://github.com/78/ssbc/archive/master.zip

[root@localhost~]# unzip master.zip

解压后你会发现在root根目录先有个文件夹ssbc-master.

二.安装MariaDB

1.安装数据库及所需环境

yum install gcc gcc-c++ python-devel mariadb mariadb-devel mariadb-server

[root@localhost ~]# yum install gcc

[root@localhost ~]# yum install gcc-c++

[root@localhost ~]# yum install python-devel

[root@localhost ~]# yum install mariadb

[root@localhost ~]# yum install mariadb-devel

[root@localhost ~]# yum install mariadb-server

[root@localhost]# wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py

[root@localhost]# python get-pip.py

curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python

[root@localhost]# cd ssbc-master

[root@localhost ssbc-master]# pip install -r requirements.txt

2.创建ssbc数据库

[root@localhost ~]# service mariadb start //启动数据库

[root@localhost ~]# mysql -uroot -p

Enter password: (回车即可)

MariaDB [(none)]> create database ssbc default character set utf8;

MariaDB [(none)]> quit; //创建成功后退出

修改root密码

1.以root身份在终端登陆,必须

2.输入 mysqladmin -u root -p password root

后面的 root 是要设置的密码

3.回车后出现 Enter password

输入就密码,如果没有,直接回车

三.安装Sphinx

[root@localhost ssbc-master]# wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel7.x86_64.rpm

[root@localhost ssbc-master]# yum install unixODBC unixODBC-devel postgresql-libs

[root@localhost ssbc-master]# rpm -ivh sphinx-2.2.9-1.rhel7.x86_64.rpm

然后在服务器根目录创建文件夹: data 和 tem (两个文件夹)

然后在 data 目录创建文件夹: bt

然后在 bt 目录创建文件夹: index

然后在 index 目录创建文件夹: db 和 binlog (两个文件夹)

然后在 tem 目录创建文件夹: downloads

最后 给 data 以及 tem 文件夹赋予 755 或者 777 权限 (需要继承到子文件夹)

[root@localhost ssbc-master]# indexer -c sphinx.conf --all (all 前面是空格减号减号)

[root@localhost ssbc-master]# searchd --config ./sphinx.conf (config前空格减号减号)

四.Web设置

[root@localhost ssbc-master]#

[root@localhost ssbc-master]# python manage.py makemigrations

[root@localhost ssbc-master]# python manage.py migrate

[root@localhost ssbc-master]# python manage.py runserver 0.0.0.0:8089 //启动ssbc

浏览器输入你的ip(如:54.43.43.43) 看网站是否能正常访问,正常则CTRL+C停止

[root@localhost ssbc-master]# python manage.py createsuperuser //输入用户名邮箱密码确认密码(创建管理账号)

[root@localhost ssbc-master]# nohup python manage.py runserver 0.0.0.0:8089 > /dev/zero & //将网站服务放在后台运行

五.开启爬虫(workers目录下)

安装 Python GeoIP库

pip install pygeoip

1.爬虫:执行:python simdht_worker.py (等2两分钟出现数据之后可以CTRL+C停止)

1.1 执行命令:nohup python simdht_worker.py >/dev/zero & (让爬虫在后台运行)

2.入库:执行:python index_worker.py (等待10分钟没有出现数据之后可以CTRL+C停止)

2.1 后台执行命令:nohup python index_worker.py >/dev/zero & (让爬虫在后台运行)

后台登陆:http://ip/admin

只允许自己的域名解析:

ssbc/settings.py

ALLOWED_HOSTS = ['www.smzdy.com',]

常见问题:

1.必须centos7吗?

非常建议使用centos7,centos6可能会有意想不到的错误

2.怎么查看入库的文件?

登录管理员后台,点击 Hashs

3.怎么查看每天入库了多少文件,以便清楚入库效率?

登录管理员后台,点击 Status reports

4.如何确认web服务器、采集、入库正在运行?

ps -ef|grep python

结果里面有

python manage.py runserver 0.0.0.0:80

python simdht_worker.py

python index_worker.py

即表示正在运行。

mariadb添加自启动 添加到服务。

systemctl enable mariadb.service

centos7 需要给予执行权限 chmod u+x /etc/rc.d/rc.local

在里面运行一个把所有服务的.sh文件,注意绝对路径和加延时

转载:http://blog.ouoshop.com/post/13.html

搜索中文出现错误:

'ascii' codec can't encode character u'。。。。

在search/timermiddleware.py

指定文件字符集为utf-8

在文件头部加入以下代码:

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

2.爬虫运行时 可能会遇到如下问题:

Python and Django OperationalError (2006, 'MySQL server has gone away')

解决方法:

cd /etc/my.cnf.d

vi server.cnf

在# this is only for the mysqld standalone daemon

[mysqld]

后面加上

max_allowed_packet = 128M

128M或者更大

http://stackoverflow.com/questions/14163429/python-and-django-operationalerror-2006-mysql-server-has-gone-away

3、索引入库可能会出现如下问题

![10fa85f47f86bdbb.png][1]

进入mysql,执行一下语句

update search_hash set tagged=True where id=8947593;

这里的id换成你自己的id

还是不行就要重新索引,看后面文字说明↓↓↓↓

mariadb配置允许远程访问方式

首先配置允许访问的用户,采用授权的方式给用户权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

说明:root是登陆数据库的用户,123456是登陆数据库的密码,*就是意味着任何来源任何主机反正就是权限很大的样子。

%可以用允许登陆的IP替换

最后配置好权限之后不应该忘记刷新使之生效

flush privileges;

临时解决蜘蛛会死掉的方法:

#!/bin/sh

simdhtpid=$(ps -ef|grep -v grep|grep "python simdht_worker.py"|awk '{print $2}')

kill -9 $simdhtpid

simdhtpid=$(ps -ef|grep -v grep|grep "python index_worker.py"|awk '{print $2}')

kill -9 $simdhtpid

sleep 1

cd /root/ssbc/workers

nohup python simdht_worker.py >/dev/zero &

nohup python index_worker.py >/dev/zero &

终极解决办法:

cd /etc/my.cnf.d

vi server.cnf

在# this is only for the mysqld standalone daemon

[mysqld]

后面加上

max_allowed_packet = 128M

128M或者更大

更换服务器迁移:

备份ssbc网站文件

备份数据库:

mysqldump -usmzdy -psmzdy.com --default-character-set=utf8 smzdy > smzdy.sql

在新服务器wget数据过去。

安装环境,

**不需要执行:**

python manage.py makemigrations

python manage.py migrate

安装好mariadb后,新建同名数据库,

导入wget过来的数据库:

mysql -usmzdy -psmzdy.com smzdy < smzdy.sql

导入完后

mysql -uroot -p

选择数据库:

use smzdy

update search_hash set tagged=0;

quit;

然后:

indexer -c sphinx.conf --all (all 前面是空格减号减号)

searchd --config ./sphinx.conf (config前空格减号减号)

cd worker

重新索引所有数据:

python index_worker.py

运行网站,即可

index_worker.py意外退出会导致错误,无法运行:

[root@localhost workers]# python index_worker.py

fetched 10000

Traceback (most recent call last):

File "index_worker.py", line 44, in

if work() == 10000:

File "index_worker.py", line 35, in work

(one['id'], one['name'], one['category'], one['length'], one['create_time'], one['last_seen']))

File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute

self.errorhandler(self, exc, value)

File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler

raise errorclass, errorvalue

_mysql_exceptions.ProgrammingError: (1064, "duplicate id '1'")

解决办法:

用上面的方法先清空tagged

mysql -uroot -p

选择数据库:

use smzdy

update search_hash set tagged=0;

quit;

然后:

备份/data /tem,然后删除这两个文件夹,重新各个新建文件夹和子文件夹,chmod 755 data -R chmod 777 /tem -R

indexer -c sphinx.conf --all (all 前面是空格减号减号)

searchd --config ./sphinx.conf (config前空格减号减号)

cd worker

重新索引所有数据:

python index_worker.py

[1]: http://www.smzdy.com/usr/uploads/2015/12/823242955.png

最后

以上就是隐形缘分为你收集整理的手撕包菜 mysql_新版手撕包菜安装教程的全部内容,希望文章能够帮你解决手撕包菜 mysql_新版手撕包菜安装教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部