centos 7.6 下python2.7 安装 MySQL-python问题解决

 python  centos 7.6 下python2.7 安装 MySQL-python问题解决已关闭评论
5月 162019
 

centos7.6 下python2.7版本使用pip install MySQL-python可能出现下面错误:

可能问题一:  ERROR: Complete output from command python setup.py egg_info:
ERROR: sh: mysql_config: 未找到命令

解决办法: yum install mysql-devel

 

再次安装,没问题最好, 如果出现下面问题:

 可能问题二:_mysql.c:29:20: 致命错误:Python.h:没有那个文件或目录
#include “Python.h”

解决办法: yum install python-devel

 

再次安装 : pip install MySQL-python

问题解决!

 

Ubuntu 16.04 升级内核 安装 BBR

 bbr, ubuntu  Ubuntu 16.04 升级内核 安装 BBR已关闭评论
3月 272019
 

 BBR 只能配合 Linux Kernel 4.10 以上内核才能使用, 所以需要升级内核


查看内核版本,如达到要求略

# uname -r

4.4.0-1075-aws  //默认4.4.0,因此需要升级

//切换到root用户

$ sudo -s  

# wget –no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh

# chmod +x bbr.sh 

# ./bbr.sh

———- System Information ———-

 OS      : Ubuntu 16.04.5 LTS

 Arch    : x86_64 (64 Bit)

 Kernel  : 4.4.0-1075-aws

—————————————-

 Auto install latest kernel for TCP BBR

 URL: https://teddysun.com/489.html

—————————————-

Press any key to start…or Press Ctrl+C to cancel

按任意键后会显示

Info: Getting latest kernel version…

———— kernel setting ————

1) 4.14

……

…..

234) 4.20.16

235) 4.20.17

236) 5.0

237) 5.0.1

238) 5.0.2

239) 5.0.3

240) 5.0.4

which kernel you’d select (default 5.0.4):  // 按回车键选择最新版本 

your selection: 5.0.4

–2019-03-27 02:55:58–  https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0.4/linux-modules-5.0.4-050004-generic_5.0.4-050004.201903231634_amd64.deb

Resolving kernel.ubuntu.com (kernel.ubuntu.com)… 91.189.94.216

Connecting to kernel.ubuntu.com (kernel.ubuntu.com)|91.189.94.216|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 46593520 (44M) [application/x-debian-package]

Saving to: ‘linux-modules-5.0.4-amd64.deb’

     0K ………. ………. ………. ………. ……….  0%  160K 4m44s

    50K ………. ………. ………. ………. ……….  0%  321K 3m33s

   100K ………. ………. ………. ………. ……….  0% 24.3M 2m22s

   150K ………. ……..

……..

done

Info: The system needs to reboot.

Do you want to restart system? [y/n]y  //按“y“重启

./bbr.sh: line 271:  8748 Terminated              reboot



#######重启后##########

$ uname -r

5.0.4-050004-generic

$ sudo -s


#分别输入下面命令检查

# sysctl net.ipv4.tcp_available_congestion_control

net.ipv4.tcp_available_congestion_control = reno cubic bbr


# sysctl net.ipv4.tcp_congestion_control

net.ipv4.tcp_congestion_control = bbr


# sysctl net.core.default_qdisc

net.core.default_qdisc = fq


# lsmod | grep bbr

tcp_bbr                20480  6


看到bbr即完成


centos 7 升级内核 安装 BBR

 bbr  centos 7 升级内核 安装 BBR已关闭评论
3月 272019
 

BBR介绍

Google BBR (Bottleneck Bandwidth and RTT) 是一种新的TCP拥塞控制算法,它可以高效增加吞吐和降低网络延迟,并且Linux Kernel4.9+已经集成该算法。开启BBR也非常简单,因为它只需要在发送端开启,网络其他节点和接收端不需要任何改变。

升级内核

1. 打开Terminal

输入

# uname -r 

查看内核版本,如果输出类似

3.10.0-514.21.2.el7.x86_64

则表示小于4.9,需要升级内核,
而如果内核大于等于4.9则跳过至开启Google BBR

2. 升级内核

  • 安装 ELRepo 仓库

    # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 
  • 安装最新版kernel

    # yum --enablerepo=elrepo-kernel install kernel-ml -y 
  • 确认是否安装成功

    # rpm -qa | grep kernel 

    如果输出类似如下,包含kernel-ml-4.13.10-1.el7.elrepo.x86_64,则表示安装成功

    kernel-3.10.0-693.el7.x86_64
    kernel-tools-3.10.0-693.el7.x86_64
    kernel-ml-4.13.10-1.el7.elrepo.x86_64
    kernel-tools-libs-3.10.0-693.el7.x86_64

  • 设置开机默认启动项

    # egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' 

    输出结果类似如下

    CentOS Linux 7 Rescue f212d2d7754a4a6bb2b98950c20cc0b5 (4.13.10-1.el7.elrepo.x86_64)
    CentOS Linux (4.13.10-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-d1f142097d497f24c021d7de9b81cab4) 7 (Core)

    该列表从0开始索引,所以4.13内核索引为1

  • 设置启动项

    # grub2-set-default 1 
  • 重启

    # reboot 

    查看内核版本

    # uname -r 

    如果输出类似

    4.13.10-1.el7.elrepo.x86_64

    则表示升级完成

开启Google BBR

  • 修改sysctl配置

    # echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf # echo 'net.ipv4.tcp_congestion_control=bbr' |  tee -a /etc/sysctl.conf # sysctl -p 
  • 检查是否加载BBR

    # lsmod | grep bbr 

    如果输出结果包含tcp_bbr,则表示开启成功

    tcp_bbr 20480 0

转自:https://www.jianshu.com/p/52815c34215e

mac下安装MySQL_python时出现_mysql.c:44:10: fatal error: ‘my_config.h’ file not found

 python  mac下安装MySQL_python时出现_mysql.c:44:10: fatal error: ‘my_config.h’ file not found已关闭评论
12月 242018
 

mac下使用brew install mysql,安装pip install MySQL-python出现下面错误提示: 

    _mysql.c:44:10: fatal error: ‘my_config.h’ file not found
    #include “my_config.h”
             ^~~~~~~~~~~~~
    1 error generated.
    error: command ‘cc’ failed with exit status 1

网上很多方法都无效,使用下面都步骤可解决

brew remove mysql
brew install mysql@5.7
brew link --force mysql@5.7
pip install msyql-python (如权限不足,请使用sudo)

python3安装turtle提示错误:Command “python setup.py egg_info” failed with error code 1 错误解决

 python  python3安装turtle提示错误:Command “python setup.py egg_info” failed with error code 1 错误解决已关闭评论
12月 022018
 

 使用pip在python3.6.4安装turtle时出现下面错误:

Collecting turtle

  Using cached https://files.pythonhosted.org/packages/ff/f0/21a42e9e424d24bdd0e509d5ed3c7dfb8f47d962d9c044dba903b0b4a26f/turtle-0.0.2.tar.gz

    Complete output from command python setup.py egg_info:

    Traceback (most recent call last):

      File “<string>”, line 1, in <module>

      File “/tmp/pip-install-hpqxw6_s/turtle/setup.py”, line 40

        except ValueError, ve:

                         ^

    SyntaxError: invalid syntax

    —————————————-

Command “python setup.py egg_info” failed with error code 1 in /xxx/turtle/

其实仔细看是一个语法错误,可以根据上面的url(https://files.pythonhosted.org/packages/ff/f0/21a42e9e424d24bdd0e509d5ed3c7dfb8f47d962d9c044dba903b0b4a26f/turtle-0.0.2.tar.gz)自己先把包下载到本地,然后解压到本地再安装,提示的错误在解压的setup.py文件里面,

  1. 打开setup.py文件,第40行修改为 except (ValueError, ve):
    原来的是Python2的写法,没有括号,加了括号之后Python3就能用了。
  2. 用pip3安装: pip install -e turtle-0.0.2
    -e后面接上我们修改过setup.py文件的目录。
  3. 这样就搞定了。

ubuntu 16.04安装shadowsocks(ss) gui 客户端

 ubuntu  ubuntu 16.04安装shadowsocks(ss) gui 客户端已关闭评论
11月 282018
 

如何安装ss服务器请自行搜索,本文只讲解在ubuntu 16.04/14.04下ss gui客户端安装,请依次执行: 

1. 安装 shadowsocks-qt5

sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5 

2. 配置ss服务器连接

打开shadowsocks-qt5, 然后通过菜单 连接->添加->手动 , 添加服务器ip,端口,密码,加密方式,本地地址,本地端口(如:1080)等, 保存后连接


3. 配置本机网络连接

在系统设置中,选择网络 –> 网络代理 –> 方法手动 –> Socks主机 127.0.0.1   1080。应用到整个系统即可

ubuntu 16.04 下安装 pyaudio

 python, ubuntu  ubuntu 16.04 下安装 pyaudio已关闭评论
11月 202018
 
1.先使用命令安装:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0

2. 再使用下面命令即可
pip install pyaudio

tomcat 安装配置apr

 tomcat  tomcat 安装配置apr已关闭评论
12月 302016
 

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。 

1)bio 

默认的模式,性能非常低下,没有经过任何优化处理和支持. 

2)nio 

利用java的异步io护理技术,no blocking IO技术. 

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为 

 <Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol" 
	connectionTimeout="20000" 
	URIEncoding="UTF-8" 
	useBodyEncodingForURI="true" 
	enableLookups="false" 
	redirectPort="8443" /> 

启动后,就可以生效。 

3)apr 

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能. 

必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native 

如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtoco

tomcat如何支持apr?

需要安装apr, apr-util,   openssl, tomcat-native(tomcat-native包在tomcat目录的bin目录下就有源码的压缩包,解压这个包,注意下版本,也可以在http://tomcat.apache.org/download-native.cgi下载,并在http://tomcat.apache.org/native-doc/miscellaneous/changelog.html中查看下支持的openssl和apr版本,然后到对应的网站下载适合的版本)

1. 从网站 http://apache.spd.co.il/apr/ 中下载apr-xxx.tar.gz

tar zxvf apr-1.xx.xx.tar.gz

cd apr-xxx

./configure

make && make install

默认安装在/usr/local/apr目录下,可以通过命令行参数 –prefix 指定,建议不要改。

2. 从网站 http://apache.spd.co.il/apr/ 中下载apr-util-xxx.tar.gz

tar zxvf apr-util-xxx.tar.gz

cd apr-util-xxx

./configure –with-apr=/usr/local/apr     (此处路径就是上面俺转apr的路径)

make && make install


3.  openssl安装,其实linux版本一般都自带openssl,可以通过命令: openssl version查看版本,如果太低,可以

https://www.openssl.org/source/下载openssl-xx.tar.gz包编译安装

tar zxvf openssl-xx.tar.gz

cd openssl-xx

./config

make && make install (默认安装在/usr/local/ssl/)


4.  安装tomcat-native ,建议使用tomcat自己bin目录下的tomcat-native.tar.gz,

 解压, 

tomcat-native-1.1.27-src的版本进入jni/native目录,查看 BUILDING文件,可以有详细的说明

tomcat-native-1.2.10-src的版本直接进入native目录,查看BUILDING文件,有详细的说明

在native目录下,输入

configure –with-apr=/usr/local/apr –with-ssl=/usr/local/ssl  

其中/usr/local/apr 和 /usr/local/ssl分别是上面安装的apr和openssl目录。

安装完成有提示文字告诉你安装到的位置, 上面路径默认安装在/usr/local/apr/lib


配置tomcat,其实在BUILDING文件有说明,具体是:

Using it in Tomcat
——————

1. In <Connector> use of conf/server.xml:
   protocol=”org.apache.coyote.http11.Http11AprProtocol”
2. In bin/setenv.sh add the following:
   CATALINA_OPTS=”$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib”
   

 tomcat下没有bin/setenv.sh 文件就新建一个,并有可执行权。



启动tomcat , 看到如下信息: 

信息: Starting ProtocolHandler [“http-apr-8080”]

成功!

关于openssl配置(单向):

单向SSL的概念:

客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到客户端的服务器公钥对数据加密传给服务器端,服务器用私钥对数据进行解密,这就完成了客户端和服务器之间通信的安全问题,但是单向认证没有验证客户端的合法性。

 

不使用apr情况:

(1)产生密钥库
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore /usr/local/apache-tomcat-6.0.18/keystore

(2)在Connector上配置密钥库
<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
               maxThreads=”150″ scheme=”https” secure=”true”
               clientAuth=”false” sslProtocol=”TLS” keystoreFile=”/usr/local/tomcat/conf/keystore” keystorePass=”123456″/>

 

使用apr情况:

(1)产生密钥库

openssl genrsa -out rsa-private-key.pem 1024
openssl req -new -x509 -nodes -sha1 -days 365 -key rsa-private-key.pem -out self-signed-cert.pem

(2)在Connector上配置密钥库

<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
               maxThreads=”150″ scheme=”https” secure=”true”
               clientAuth=”false” sslProtocol=”TLS” 
               SSLCertificateKeyFile=”/usr/local/tomat/rsa-private-key.pem”
               SSLCertificateFile=”/usr/local/tomat/self-signed-cert.pem”/>

 

出现:

Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR

可以将: protocol=“HTTP/1.1″修改为  protocol=”org.apache.coyote.http11.Http11Protocol”, 之修改https的端口,不要修改原来支持apr的http的protocol

openssl安装及生成RSA私钥及公钥

 openssl  openssl安装及生成RSA私钥及公钥已关闭评论
3月 172016
 

openssl生成公私钥时经常需要查下使用命令,今天整理下放在这里,到时好找些, 摘录自支付宝支付资料

RSA私钥及公钥生成

OpenSSL工具安装

  • Linux用户(以Ubuntu为例)
    sudo apt-get install openssl

  • Windows用户
    开发者可以在OpenSSL官方网站下载Windows的OpenSSL安装包进行安装。

RSA私钥及公钥生成

  • Linux用户(以Ubuntu为例)
    $ openssl 进入OpenSSL程序
    OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私钥
    OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt Java开发者需要将私钥转换成PKCS8格式
    OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 生成公钥
    OpenSSL> exit ## 退出OpenSSL程序

  • Windows用户在cmd窗口中进行以下操作:
    C:\Users\Hammer>cd C:\OpenSSL-Win32\bin 进入OpenSSL安装目录
    C:\OpenSSL-Win32\bin>openssl.exe 进入OpenSSL程序
    OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私钥
    OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt Java开发者需要将私钥转换成PKCS8格式
    OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 生成公钥
    OpenSSL> exit ## 退出OpenSSL程序

注意:对于使用Java的开发者,将pkcs8在console中输出的私钥去除头尾、换行和空格,作为开发者私钥,对于.NET和PHP的开发者来说,无需进行pkcs8命令行操作。