2014年6月6日星期五

mysql 数据库热备份主从设置

一、主从设置

log-bin=mysql-bin
server-id       = 1
expire_logs_days = 5
binlog-do-db=数据库1
binlog-do-db=数据库2
binlog-ignore-db=mysql

二、mysql多实例化(windows下) 如果有其他mysql服务器,这里不需要
拷贝mysql目录
mysqld install mysql2 服务安装
修改端口
注册表修改
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/项目找到你刚才手动安装的服务,在mysql-nt"和mysql2之间加入my.ini的路径信息,格式为:

--defaults-file="d:/mysql/my.ini"

server-id = 2
master-host=主ip
master-user=用户名
master-password=密码
master-port=3306
replicate-ignore-db=mysql
replicate-do-db=数据库1
replicate-do-db=数据库2

数据库需要一致,到出主服务器数据到从服务器
导出数据库为sql命令文件
第一步是清空所有表和块写入语句,并锁定COMMIT操作。这里不要退出mysql!
第二步是启动另一个终端导出数据。
第三步是查看状态,
第四步是解除第一步的锁状态。
mysql>FLUSH TABLES WITH READ LOCK;
mysqldump --master-data=2 --single-transaction -u root -p table >table.sql
mysql>SHOW MASTER STATUS;
mysql>UNLOCK TABLES;


帐户设置
用户名 密码 RELOAD, SUPER, REPLICATION SLAVE

从服务器命令启动
slave stop;
show variables like 'server_id';
set global server_id=2;
CHANGE MASTER to MASTER_HOST='主ip', MASTER_PORT=3306, MASTER_USER='用户名', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;

MASTER_LOG_FILE MASTER_LOG_POS 通过master执行show master status 获得

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; 设置同步错误时执行

查看是否成功
slave start;
show slave status\G;
  Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
代表成功

centos 常用命令

.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

tar -czvf  项目.tar.gz   --exclude=目录 --exclude=目录  项目目录 

cp -Ri file1 file2
复制文件夹

vi
插入到光标后面 a
返回控制命令 esc
推出 :q 强制退出:q!
保存退出 :wq
到最后一行:$
查找字符串 /

重启
reboot

服务重启
service httpd restart

SElinux设置vsftp
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
getsebool -a|grep ftp


cpu和内存使用情况
top

添加centos到用户组apache
 
usermod -a -G apache centos

设置网站根目录/var/www的所有组为apache
 
chown -R :apache /var/www

设置网站根目录的权限为用户组有读写权限
 
chmod -R g+rw /var/www

查看Apache运行用户和组
ps -ef |grep httpd

查看用户属于哪个组
id user

查看所有用户

cat /etc/passwd

mysql 备份
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

mysql还原
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
或者
mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc_db.sql


系统每天定时备份mysql数据库

1、创建保存备份文件的路径/mysqldata
#mkdir /mysqldata

2、创建/usr/sbin/baktest文件
输入以下内容:
mysqldump -uroot -proot test | gzip > /mysqldata/test`date +%Y-%m-%d_%H%M%S`.sql.gz

3、修改文件属性,使其可以执行
#chmod +x /usr/sbin/baktest

4、修改/etc/crontab
在下面添加
01 3 * * * root /usr/sbin/baktest
表示每天3点钟01分执行备份

5、重新启动crond
#/etc/rc.d/init.d/crond restart

添加root权限的用户
修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 :

mysql备份用户权限设置LOCK TABLES,SELECT,FILE,RELOAD,SUPER,SHOW VIEW*

df -hl      查看分区大小

Linux下如何合并目录

\cp -Rf  要合并目录 目标目录的父级目录     目录下的同名目录合并

f参数是为了避免提示是否要覆盖文件
cp之前还有一个“\”符号 是因为 cp命令使用-f参数后,还是会提示是否要覆盖文件,因为cp命令的alias是cp -i,而恰恰-i参数是表明有交互提示,于是直接输入cp -Rf是不能消除提示的。在cp命令前加上“\”,或者使用cp命令的绝对地址就可以保证不出现提示了。

2014年6月3日星期二

Linode VPS上的Centos iptables security raw nat[FAILED]filter

纯属转载,方便自己查找
重启Linode VPS上的Centos 6.4系统的防火墙的时候,遇到以下错误:
service iptables restart
Setting chains to policy ACCEPT: security raw nat[FAILED]filter

经过搜索,明白是Linode官方在iptables里加了一个security的规则链,但Centos不支持。
而找到的解决方法是,编辑/etc/init.d/iptables,找到:
  1. for i in $tables; do
  2. echo -n "$i "
  3. case "$i" in
  4. raw)
  5. $IPTABLES -t raw -P PREROUTING $policy \
  6. && $IPTABLES -t raw -P OUTPUT $policy \
  7. || let ret+=1
  8. ;;
加入以下内容到“case "$i" in”下面:
  1. security)
  2. $IPTABLES -t filter -P INPUT $policy \
  3. && $IPTABLES -t filter -P OUTPUT $policy \
  4. && $IPTABLES -t filter -P FORWARD $policy \
  5. || let ret+=1
  6. ;;
  7.  
最终版本类似:
  1. for i in $tables; do
  2. echo -n "$i "
  3. case "$i" in
  4. security)
  5. $IPTABLES -t filter -P INPUT $policy \
  6. && $IPTABLES -t filter -P OUTPUT $policy \
  7. && $IPTABLES -t filter -P FORWARD $policy \
  8. || let ret+=1
  9. ;;
  10. raw)
  11. $IPTABLES -t raw -P PREROUTING $policy \
  12. && $IPTABLES -t raw -P OUTPUT $policy \
  13. || let ret+=1
  14. ;;
保存后,重启则可
service iptables restart

2012年8月21日星期二

中国的程序员,学什么语言

所有想要进入程序员行列的第一个问题就是,学什么语言。

其实真没必要纠结于学什么语言。它只是个工具,怎么学,怎么用才是关键。

本人觉的,影响语言的使用率有三个方面,
第一个方面是工资,做初级程序员的工资才是学习哪门语言的第一要素,所以培训市场很火,它就争对这样的人群。

第二方面是饱和度,和工资有很大关系,饱和度是反映现在市场的潮流和转变的表现值,一旦某个领域稳定下来,接下来就又是一场变动。比如之前很多公司做广告的,开始转向外包,那时候也就火了c#,java等。后来轮到页游,unity,flash也就跟着火,近来android,ios,基本上要想在一个方面专研下去,很难,不是我们程序员不够专研,而是难在生活需要我们工资,而我们的工资来源于公司,而公司跟随着潮流,潮流也就影响着我们的技术和语言。

第三方面,该谈到兴趣了,谁都知道兴趣是学习的最好的导师。没兴趣,还是转行吧,这行是很寂寞的,是很孤独的,是很无聊的,而且也是个年轻饭,到时候脑袋跟不上了,效率不高了,谁还要呢。

因为我跳了很多槽,所以我就是学了很多种,先接触的php,js,mysql后来c#,sql2000,flash,as3在后来,android,Linux,还有啥来着,反正都是一个时代的产物。
直到现在,php我是老鸟了,但我从不说我精通某一方面,技术永远都在前行,你能说你精通,那只是某一天,某一段时间。

我很讨厌那些说大话的人,拍着胸脯说自己什么什么精通的,记得有次面试个应届生,他还真敢说什么精通,结果我就让他来工作,然后安排他做个中等难度的事情,最后憋了三天跟我说,做不了,我当时真想骂他来着,但要保持点形象,我就对他说,你不适合做这个,你还是走吧。

每个人都得找到自己路,不要被别人误导了,有句话:师傅领进门,修行在各人。选什么语言不重要,重要的是学习的方法如何使用。

2012年8月20日星期一

说说跳槽的事

我跳槽,只是想过的更好,不是说我不想稳定。

人生不得不面对这样的抉择--跳槽。

跳槽这事得有三个阶段:

1.犹豫期,跳还是不跳,取决于自己对公司的好坏分析,分析到位后再决定要不要跳。

一般先是公司业绩方面,要是公司不赚钱,那就没钱给自己发工资,更不会涨工资,工资这事,对所有人影响很大,除非有股份,那就是另外一回事了,股份就像赌博一样,赢了就高兴,输了就难受。

然后就是公司人际关系,工作压力方面考虑,比如和老板,和同事,和领导谈不来,不爽,那就算工资再高也不行,总不能天天不开心,抑郁撒,我通常谈不下去的时候,就不再发表意见了,因为沟通是需要建立在平等的基础上的。工作压力要适当,不能总一直紧绷着,弄几个通宵没问题,问题是,弄完还要接着工作,没得息,真当自己是机器人啊,也不会有人感谢你。

2.准备期,跳槽也得跳个稍微好点的地方,所以先按兵不动,等着下个工作的地方找好了再动,找不到好的,还不如在原来的地方呆呆,至少环境已经熟悉了,找下家真是件不容易的事,工资总得提点,职位可以进去了再慢慢爬,主要是工作环境,工作压力要先了解了解。

3.办手续,有的公司来的容易,走的时候麻烦不得了,还扣钱,想去劳务,但那个更麻烦,所以很多时候我们都是弱势的。

我已经跳了N多家了,实在跳不动了,每跳一家,我真的想稳定下来,但有时候,现实就是那么的残酷,没得选。 有时候想创业来着,但是在国内,想创业,一是运气,而是背景,其他的就别想了,还是好好工作吧

2012年8月16日星期四

程序员的出路在哪

每天,面对我的是无数个将要解决的问题,不管它是多简单,还是多复杂,我都得义无反顾,能解决什么样的问题,就代表我们有多大的价值,能拿多少工资。

大多数的程序员,命运很坎坷,也有少数命好的。

我身边有很多都是转行做程序的,最终也有很多转行做别的,能坚持下来的真的很少,做到30岁左右,就是一个坎,要么走人,开个电脑店,话说现在也不那么好开了,要么就升职,做管理。我就是其中一个。

说说中层管理员吧,对上边得奉承着,不顺心的时候比顺心的时候多。面对外行者来说,说明一个功能要花多少人力,财力,物力和时间,这是件多么痛苦的事情,因为你不知道这里面有多少不定因素,人的因素占一半,都是人在做事,需求的变动占一半,技术难度占一半,在加上计划赶不上变化,等等各种原因。终于明白为什么以前的领导总是愁眉苦脸的了。
对下边,都是做技术的,多少都有点同情心,不管做的多慢,多烂,总得忍着点,毕竟人家就这点能耐,也不能让人家下岗吧,还有一点,招不到人,哎,新人是很多,但是,培训,考核,一大堆的事情,就忙着把人带出来了,产品进度一点没变,还不指定人家原不愿意待呢,说不定就为了混个实习,实习一完立马走人。

在说说自己吧,自己老大不小了,也成家了,家里的担子挺重,创业很早就想了,一直等机会,就是机会不肯来。平时没事的时候就瞎想,想着做点东西看看能不能火,可是一做起来就头疼,毕竟不是现成的需求,做出来就行,看着市场上这样那样的产品,想仿一个,又为后面的销售,宣传而烦恼,总之就是在等着。大多数时间就看看电视,玩玩游戏,研究下最新技术产品之类的,话说kinect出来后,一直想买,等到了买的时候,又为了那点钱舍不得,真够可怜的。今年打算买了,毕竟这东西都出来很久了,不买还真算不上是做it的,android倒是早早入手了一台,也做了个小东西没成形,都不好意思拿出手,研究研究就到位了,ios太贵,了解了解就可以了,之前还做过个flash应用,转成java在山寨机上跑的,现在每个月还能赚个话费,满足足的。

程序员有想法,但真正自己单干的时候还是不行的,没个志同道合的帮忙定需求,就做不了东西,销售也不行,管理只能凑合,毕竟不是专业搞管理的。

没事的时候还是可以写写技术文档的,可是我很懒,懒到程序都不想自己写,以前写过个程序,只要设置设置,填写填写表单,就能生成一个网站的,yiy.66ghz.com 就这个。