分类目录归档:Linux

mysql导入视图错误ERROR 1449

MYSQL导入时,如果存在视图,可能导致导入不成功,错误提示: ERROR 1449(HY000) at line xxx: The user specified as a definer (‘xxx’@’xxx’) does not exist

解决办法1:

sed '/\/*!50013/d' backup.sql > backup_without_50013.sql

解决办法2:

$contents = file_get_contents('backups/backup.sql');
$contents = preg_replace('@/*!50013 DEFINER.*?*/@' , '' , $contents);
file_put_contents('backups/backup.sql' , $contents);

Import mysql dump files with view definer and sql security

ubuntu安装php的redis扩展

下载安装扩展

首先下载包,http://pecl.php.net/package/redis

sudo aptitude install php5-dev
sudo wget http://pecl.php.net/get/redis-2.2.5.tgz
sudo tar zxf redis-2.2.5.tgz 
cd redis-2.2.5/
sudo phpize
sudo ./configure
sudo make
sudo make install

修改ini配置

sudo vim /etc/php5/fpm/conf.d/redis.ini

extension=redis.so

测试运行

sudo php5-fpm -t
sudo php5-fpm -m
sudo service php5-fpm reload

ubuntu安装最新的xhprof

安装xhprof

aptitude install python-software-properties
add-apt-repository ppa:brianmercer/php5-xhprof
aptitude update
aptitude install php5-xhprof graphviz

其中graphviz包用来生成图形

linux下jdk+ant安装

下载JDK安装jdk

可以将url换成其他版本,URL在http://www.oracle.com/technetwork/java/javaee/downloads/index.htm

mkdir -p /opt/java
cd /opt/java
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin"
chmod u+x jdk-6u45-linux-x64.bin
ln -s jdk-6u45-linux-x64 default

下载安装ant

wget http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz
tar zxf apache-ant-1.9.4-bin.tar.gz 
ln -s apache-ant-1.9.4 ant

修改profile

vim /etc/profile.d/sun-jdk.sh

export JAVA_HOME=/opt/java/default
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:.
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:.:$CLASSPATH

# ant
export ANT_HOME=/opt/java/ant
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:.:$ANT_HOME/bin

nginx 502 (Resource temporarily unavailable)

查看连接数和当前的连接数

netstat -ant | grep $ip:80 | wc -l   
netstat -ant | grep $ip:80 | grep EST | wc -l

查看IP访问次数

netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n

实时查看连接数

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
watch "netstat -n | awk '/^tcp/ {++S[\$NF]} END {for(a in S) print a, S[a]}'"

返回结果示例

LAST_ACK 5
SYN_RECV 30 
ESTABLISHED 1597 
FIN_WAIT1 51 
FIN_WAIT2 504 
TIME_WAIT 1057

说明

  • SYN_RECV 表示正在等待处理的请求数;
  • ESTABLISHED 表示正常数据传输状态;
  • TIME_WAIT 表示处理完毕,等待超时结束的请求数;
  • FIN_WAIT1 表示server端主动要求关闭tcp连接;
  • FIN_WAIT2 表示客户端中断连接;
  • LAST_ACK 关闭一个TCP连接需要从两个方向上分别进行关闭,双方都是通过发送FIN来表示单方向数据的关闭,当通信双方发送了最后一个FIN的时候,发送方此时处于LAST_ACK状态,当发送方收到对方的确认(Fin的Ack确认)后才真正关闭整个TCP连接;

解决办法

/etc/security/limits.conf

www-data   soft    nproc   51200
www-data   hard    nproc   16384
www-data   soft    nofile   51200
www-data   hard    nofile   51200

php-fpm配置及管理(无须重启,即可重新加载配置及LOG日志)

PHP-FPM参数

php-fpm {start|stop|quit|restart|reload|logrotate}
--start 启动php的fastcgi进程
--stop 强制终止php的fastcgi进程
--quit 平滑终止php的fastcgi进程
--restart 重启php的fastcgi进程
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件

master进程信号

SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:
php-fpm 关闭:
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`

给fastestmirror再提速

fedora和centos安装了fastermirror之后会快一些,但是还是经常选到国外的站点。

方法1:修改源配置文件(推荐,以fedora20为例)

sudo vim fedora.repo
# 找到以下这行
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
# 后面添加&country=cn
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch&country=cn
sudo vim fedora-updates.repo
# 找到以下这行
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
# 后面添加&country=cn
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch&country=cn

方法2:修改fastestmirror.conf

sudo vim /etc/yum/pluginconf.d/fastestmirror.conf

修改后清除fastestmirror和metalink缓存

sudo yum clean metadata plugins
sudo yum -y update

gitlab安装及使用

操作系统是ubuntu12.04,先下载gitlab deb,https://www.gitlab.com/downloads/

参考地址:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

apt-get install postfix
wget https://downloads-packages.s3.amazonaws.com/gitlab_6.7.2-omnibus-1.ubuntu.12.04_amd64.deb
sudo dpkg -i gitlab_6.7.2-omnibus-1.ubuntu.12.04_amd64.deb
sudo gitlab-ctl reconfigure