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

问题解决!

 

AWS SSH使用证书登录时出现:Permission denied (publickey). (之前能够连接,而现在却不能连接)问题解决

 aws  AWS SSH使用证书登录时出现:Permission denied (publickey). (之前能够连接,而现在却不能连接)问题解决已关闭评论
12月 062018
 

使用ssh -i /path/my-key-pair.pem ec2-user@public-dns-hostname
出现:Permission denied (publickey). 

出现这样的错误,先确认下手头的私钥pem文件确实对应自己的EC2实例。然后可以通过下面几个步骤排查:

1. 登录所使用的用户名是否正确?
正确的用户名如下所示:
对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user。
对于 Centos AMI,用户名称是 centos。
对于 Debian AMI,用户名称是 admin 或 root。
对于 Fedora AMI,用户名为 ec2-user 或 fedora。
对于 RHEL AMI,用户名称是 ec2-user 或 root。
对于 SUSE AMI,用户名称是 ec2-user 或 root。
对于 Ubuntu AMI,用户名称是 ubuntu。
另外,如果 ec2-user 和 root 无法使用,请与 AMI 供应商核实。
例如,要使用 SSH 客户端连接到从 Amazon Linux 实例,请使用以下命令:
ssh -i /path/my-key-pair.pem ec2-user@public-dns-hostname

2. 如果登录时还看到类似以下的错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for ‘.ssh/my_private_key.pem’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: .ssh/my_private_key.pem
Permission denied (publickey).

需要使用下面命令调整证书文件权限
[ec2-user ~]$ chmod 0400 .ssh/my_private_key.pem

3. 如果上面的步骤还是没解决问题,而且可能是之前能够连接,而现在却不能连接了,则可能是实例主目录的权限发生了更改。/home/ec2-user/.ssh/authorized_keys 的目录及文件权限必须限制为仅限所有者
具体操作如下(以 Amazon Linux 实例为例,用户名ec2-user):
chmod 600 /home/ec2-user/.ssh/authorized_keys
chmod 700 /home/ec2-user/.ssh
chmod 700 /home/ec2-user
(测试发现700权限的扩大到755也可以)

Done!!!

*******************************************************
附录1:打开AWS用户名密码登录方式,此处以root登录为例


1.首先 用密钥登陆 
2.给 root 设置密码 sudo passwd root
3.密码设置好后 切换到root用户 su root
4.修改ssh配置文件,允许密码登录
 vim /etc/ssh/sshd_config 
将 passwordAuthentication no 改为  passwordAuthentication yes
将PermitRootLogin 改为yes 此处表示允许root登录(当然如果使用其它用户登录可以保持这项为no,但记得赋予新用户有sudo权限方便修改恢复配置)

#其它参数说明:
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
#StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile      %h/.ssh/authorized_keys

5 重启 ssh service sshd restart

********************************************************
附录2:更新替换AWS密钥/证书(以 AWS ubuntu举例)


1.在aws后台生成并下载密钥,然后将密钥保存到自己电脑。

2.执行ssh-keygen -y,会提示要求输入密钥路径, 复制密钥路径,回车得到public key,例如
ssh-rsa AAAAB3NzaC1yc2EAAAADAQA231BAQCMASwerewg23XvhyGzydp0V234lP/fyfuhsHKMECZydc5ewytvTq0mqYTfjKBS++PeBpEL1Zx/ilEYCmgY6omTrIMtG8s1jf/lAk0l9++f2ldp/w2U86seARyRxVEexxxyuwJJDASDHNiEbshXQ6M49nUsE6tfETG3sFl+XDeva0lkNkssA4JDU+eivPRGma3XcBAXvsUsD8VkKQJvudrpJDSjjncdjYOVd2Wcrcj5Li8MmLvIkEX1pmqTT6O6oUfEtCdpVi4tCwTXV5ydU8UtjJDSGDFSJgbY9Unve4LgjgoWF677FdUpvVFD1NPoLH

3.利用以前的密钥/用户名密码登录服务器,将上面第二步的public key粘贴到~/.ssh/authorized_keys。 
比如: aws ubuntu系统默认用户名ubuntu位置在/home/ubuntu/.ssh/authorized_keys,如没有.ssh目录则新建目录, 
然后将旧的public key注释或者删除。

4.注意将上面3所在目录和文件修改为正确的权限
chmod 600 /home/ubuntu/.ssh/authorized_keys
chmod 700 /home/ubuntu/.ssh
chmod 700 /home/ubuntu

4.然后你就可以利用新的密钥文件(.pem后缀文件)登录服务器了 
例如:ssh -i /path/my-key-pair.pem ubuntu@public-dns-hostname

ubuntu 16.04 下pyenv的python3.6使用tkinter提示 No module named ‘_tkinter’问题解决

 python  ubuntu 16.04 下pyenv的python3.6使用tkinter提示 No module named ‘_tkinter’问题解决已关闭评论
11月 202018
 

utuntu16.04使用pyenv安装了python3.6.5, 使用import tkinter, 返回错误提示:

 import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named ‘_tkinter’

解决办法如下:

1. sudo apt-get update

2. sudo apt-get install python3-tk  (如果是python2.x,安装sudo apt-get install python-tk即可

3. sudo apt-get install tk-dev (注意使用默认ubuntu源可能出现依赖失败, 建议更改/etc/apt/sources.list内容为阿里源即可安装)  

4. pyenv install 3.6.5  //如已安装需要再次安装


DONE!!!

部分linux系统, ftpclient 调用 listFiles返回[]空数组问题解决

 ftp  部分linux系统, ftpclient 调用 listFiles返回[]空数组问题解决已关闭评论
7月 202018
 

做项目时碰到测试机ubuntu14.04 调用ftpclient的 listFiles时正常返回文件数组,  但发布到阿里云centos 机器, 调用时确返回空数组, 可以采用下面的方法解决:

在调用listFiles前先调用下 ftpClient.enterLocalPassiveMode() ,  此方法会打开一个端口用于数据传输。


阿里云FTP如果还不能解决, 开启被动模式 

vi /etc/vsftpd/vsftpd.conf 
pasv_enable=YES
pasv_min_port=3000
pasv_max_port=3005

阿里云安全组 把端口3000-3005的端口都发放 就成功了