先来说说最近的热门产品,VR 我觉得这样的设备,很容易造成思维拘束,对人的视野范围,以及肢体感应是一个非常困惑的问题
再说说精神方面的沉浸式设备,就算现在还没有研发出来,但这只是时间的问题,我觉得这要是出了问题,不光是精神受冲击,估计生命也会有很大的危险
我觉得改变自身周围因素,会比以上两种设备来的安全及容易接受些
目前全息投影技术,在那些技术牛人的不断努力下,现在已经越来越近了,“空间光调制器” 有兴趣的可以搜索下
体感设备,不多说,目前设备出来不少,但是技术还是不够成熟,等待先的革新
环境模拟,目前没有什么好的设备,虚拟现实跑步机算一个,接着就等待虚拟其他环境的设置出现了
未来的游戏好期待不知道,有生之年能不能遇上
2014年8月24日星期日
2014年6月6日星期五
MySQl分组显示组内前N项
之前在网上搜索过几种解决办法,一直都不是很满意
分开查询
先查询id
select CAST(group_concat(ids) AS CHAR(10000) CHARACTER SET utf8) as iid
from (select SUBSTRING_INDEX(group_concat(id ORDER BY 字段),',',4) as ids from `table` group by 字段) as val
在根据id查询数据
SELECT * FROM table where id in ($id)
这种也是可以的
select 字段,substring_index(group_concat( concat(字段,':',字段) order by 字段 desc separator '|'),'|',5) fromtable group by 字段;
具体看情况
Linux下mysql忘记root密码的简单解决办法
在密码多如牛毛的今天,很多时候,管理员会出现忘记各种各样的密码,针对mysql中root密码的忘记情况,可以采用以下步骤重新设置root管理密码。
1、修改mysql的配置文件:
#vi /etc/my.cnf
在[mysqld]中加上一句:skip-grant-tables
保存退出;
2、重新启动mysql
# /etc/init.d/mysql restart
1、修改mysql的配置文件:
#vi /etc/my.cnf
在[mysqld]中加上一句:skip-grant-tables
保存退出;
2、重新启动mysql
# /etc/init.d/mysql restart
3、登录并修改mysql的root密码
#/usr/local/mysql/bin/mysql
mysql>use mysql;
mysql>UPDATE user SET Password = password ( ‘you-passwd’ ) WHERE User = ‘root’;
mysql>flush privileges;
mysql>quit
#/usr/local/mysql/bin/mysql
mysql>use mysql;
mysql>UPDATE user SET Password = password ( ‘you-passwd’ ) WHERE User = ‘root’;
mysql>flush privileges;
mysql>quit
4、将第一步修改的my.conf修改回来
# vi /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除,保存退出;
# vi /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除,保存退出;
5、重新启动mysql即可
不记得是否有用,先收藏,下次实践
一行命令安装PPTPD VPN
一行命令安装PPTPD VPN(注意,只在CentOS 5 32bits/64bits下测试通过,其他系统未测试):
wget http://www.CTOHome.com/linux-vps-pack/vpn-pptpd.sh;sh ./vpn-pptpd.sh;
如何创建更多的vpn用户?
请在linux下,ssh编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。
防火墙如果开启,需要设置
:PREROUTING ACCEPT [27:2438]
:POSTROUTING ACCEPT [49:3077]
:OUTPUT ACCEPT [49:3077]
-A POSTROUTING -s 172.16.36.0/255.255.255.0 -j SNAT --to-source 服务器ip
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [42517923:199393012741]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
CentOS卸载Apache Mysql 和php
收藏
目前新版的Centos系统会集成Apache的服务,而我们在安装有些功能的时候,需要一个完全纯净的系统,这样就需要卸载apache的httpd。
首先我们要知道我们安装了哪些组件,通过命令
rpm -qa|grep httpd rpm -qa|grep mysql rpm -qa|grep php
分别可以查看本机安装的apache、mysql和php服务。如果返回为空,则说明本机没有安装该服务。
比如笔者输入第一个命令,返回为:
[root@localhost ~]# rpm -qa|grep httpd httpd-2.2.3-43.el5.centos
说明本机已经有了httpd组件。如果我们要卸载它,我们输入以下的命令:
rpm -e httpd-2.2.3-43.el5.centos
rpm –e 是卸载rpm包的命令,后面是名称,最后的版本号可以不用打。如果我们需要卸载多个应用,只要输入多次即可。
如果实在卸载不掉的话,可以加—nodeps这个参数来卸载,比如我们卸载httpd-2.2.3-43.el5.cento,实在卸不掉了:
rpm -e httpd-2.2.3-43.el5.centos --nodeps
就可以用以上的命令卸载,看清后面是两个-
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
代表成功
主
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
解压: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命令的绝对地址就可以保证不出现提示了。
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不支持。
Setting chains to policy ACCEPT: security raw nat[FAILED]filter
经过搜索,明白是Linode官方在iptables里加了一个security的规则链,但Centos不支持。
而找到的解决方法是,编辑/etc/init.d/iptables,找到:
加入以下内容到“case "$i" in”下面:
- for i in $tables; do
- echo -n "$i "
- case "$i" in
- raw)
- $IPTABLES -t raw -P PREROUTING $policy \
- && $IPTABLES -t raw -P OUTPUT $policy \
- || let ret+=1
- ;;
最终版本类似:
- security)
- $IPTABLES -t filter -P INPUT $policy \
- && $IPTABLES -t filter -P OUTPUT $policy \
- && $IPTABLES -t filter -P FORWARD $policy \
- || let ret+=1
- ;;
保存后,重启则可
- for i in $tables; do
- echo -n "$i "
- case "$i" in
- security)
- $IPTABLES -t filter -P INPUT $policy \
- && $IPTABLES -t filter -P OUTPUT $policy \
- && $IPTABLES -t filter -P FORWARD $policy \
- || let ret+=1
- ;;
- raw)
- $IPTABLES -t raw -P PREROUTING $policy \
- && $IPTABLES -t raw -P OUTPUT $policy \
- || let ret+=1
- ;;
service iptables restart
订阅:
博文 (Atom)