月度存档: 9 月 2013
haxe loop循环递减写法
跨平台技术选型air,haxenme or cocos2dx
air技术优点:flash代码全部可用,无缝移植
air技术缺点:
1.完全由adobe操控,如果有天adobe说不支持了,那所有玩air的就死翘翘了!
2.运行效率对比:
http://blog.glyfdesign.com/post/33786420350/physics-engine-performance-on-mobile-air-haxenme
简单点说就是air=2*haxenme=4*cocos2dx
cocos2dx的最大优点就是运行快,占用内存小,缺点就是开发工具简陋,开发周期长,虽然号称跨平台,但是跨的过程各种坑,不比air少,缺点这篇文章描述比较细致了:
haxenme优点:as3开发者上手比较快
haxenme缺点:摸石头过河,开源也导致一些库类不兼容,jar有的毛病它都有了
ps:很高兴看到adobe air技术获得2014年最佳移动应用产品的殊荣
adobe AIR wins award at CES for the best “Mobile Application” product in 2014!
google趋势图:
google趋势
google趋势
看来adobe air的跨平台解决方案,在世界范围内来看还是用得很多的
iphone home键失灵软件解决方案
设置-通用-辅助功能-肢体活动栏目中点击“Assistivetouch”-点击打开
这时你的手机上出现一个灰色的小块,就是虚拟的home按键!这个软件很人性化。
在这个软件里面有个个人收藏,你可以自建手势,使用方便。
wordpress搬家问题
1.备份数据库脚本
[code]#!/bin/bash
# 要备份的数据库名,多个数据库用空格分开
databases=(db1 db2 db3)
# 备份文件要保存的目录
basepath=’/root/backup/b3log.org/mysql/’
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
# 循环databases数组
for db in ${databases[*]}
do
# 备份数据库生成SQL文件
/bin/nice -n 19 /usr/bin/mysqldump -uUSER -pPASSWORD –databases $db > $basepath$db-$(date +%Y%m%d).sql
# 将生成的SQL文件压缩
/bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
# 删除7天之前的备份数据
find $basepath -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} \;
done
# 删除生成的SQL文件
rm -rf $basepath/*.sql
[/code]
其中备份目录、MySQL 口令需要配置。
然后使用 crontab 设置该脚本定时执行:
crontab -e
设置为凌晨 3 点执行:
0 3 * * * /root/backup_mysql.sh
- mac下传文件 scp -p 4588 username@www.abc.com:/uploadfiles /home/administrator
3.更改域名
问题:虽然我们并不主张这样做,但也许有时你需要在保留博客和数据的同时改变博客的域名。由于WordPress把域名存储在数据库中,所以为了把新域名和博客连接起来,你必须更改数据库。
解决方法:
登陆phpMyAdmin,选中你的WordPress数据库。
更改博客的安装地址和博客地址,首先用phpmyadmin打开你的数据库,然后找到wp-options这个数据表,找到第一条记录也就是siteurl这条,还有第39条home,这两条将地址改成你更换后的最域名即可。只有完成这一步后,才可以顺利进入后台,否则即使你输入密码,也会自动跳转到原来的老域名。PHP My管理中选择数据库,—->点击 SQL 在输入栏中输入如下代码:
[code]
UPDATE wp_options SET option_value = replace( option_value,"http://老域名","http://新域名") WHERE option_name ="home" OR option_name ="siteurl";[/code]
使用以下语句替代所有日志的相对URL(guid全局唯一标识符)
[code]
UPDATE wp_posts SET guid = replace(guid, ‘http://www.oldsite.com’,’http://www.newsite.com’);[/code]
搜索wp_posts表并替代其中的URL,以确保没有老的URL存在了:
[code]UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.oldsite.com’, ‘http://www.newsite.com’);[/code]
完成!现在可以使用新URL登陆WordPress控制台了。
注解:为了更快地更改WordPress域名,我选择使用超级有用的MySQL函数“replace,”,这会完全替代所有需要替代的内容。
为了安全或者避免多个表同名,有时候需要批量修改数据库表前缀:
1.将以下代码保存为rename_suffix.php,并根据自己需要修改第11、12行,上传到wp-config.php同目录。
注:如果你不清楚当前数据库前缀,可以查看站点根目录下的wp-config.php文件,确定前缀。
<?php /** * 修改wordpress表名前缀的工具. *filename:rename_suffix.php * @By http://www.amyflash.com */ header("Content-type: text/html; charset=utf-8"); /////////下面两行您需要修改/////////// $oldtablepre='wp_'; //旧的表前缀 $newtablepre='lq_'; //您要修改成新的表前缀 /////////上面两行您需要修改/////////// ##########@以下请勿修改@###########################!DONT CHANGE BELOW!################################################## require_once( dirname(__FILE__) . '/wp-load.php' ); $tables=array("{$oldtablepre}commentmeta","{$oldtablepre}comments","{$oldtablepre}links","{$oldtablepre}options","{$oldtablepre}postmeta","{$oldtablepre}posts","{$oldtablepre}terms","{$oldtablepre}term_relationships","{$oldtablepre}term_taxonomy","{$oldtablepre}usermeta","{$oldtablepre}users"); echo '<div style="font-size:1.2em;"><span style="color:gray;font-weight:bold;">下面更改表名:</span><hr></hr>'; foreach ($tables as $key => $value){ $oldtable=$value; $newtable=str_replace($oldtablepre,$newtablepre,$value); $wpdb->query("ALTER TABLE `$oldtable` RENAME TO `$newtable`"); echo '成功更改表名'.$oldtable.'为:<span style="color:green;">'.$newtable.'</span><br></br>'; } echo '<span style="color:gray;font-weight:bold;">下面更改'.$newtablepre.'options表中的键值:</span><hr></hr>'; $wpdb->query("update `{$newtablepre}options` set `option_name`=replace(option_name,'{$oldtablepre}user_roles','{$newtablepre}user_roles')"); echo '成功更改'.$oldtablepre.'user_roles为:<span style="color:green;">'.$newtablepre.'user_roles</span><br></br>'; $meta_key=array("{$oldtablepre}capabilities","{$oldtablepre}user_level","{$oldtablepre}autosave_draft_ids","{$oldtablepre}usersettings","{$oldtablepre}usersettingstime"); echo '<span style="color:gray;font-weight:bold;">下面更改'.$newtablepre.'usermeta表中的键值:</span><hr></hr>'; foreach ($meta_key as $key => $value){ $oldoption=$value; $newoption=str_replace($oldtablepre,$newtablepre,$value); $rs=$wpdb->query("update `{$newtablepre}usermeta` set `meta_key` =replace(meta_key,'$oldoption','$newoption')"); echo '成功更改'.$oldoption.'为:<span style="color:green;">'.$newoption.'</span><br></br>'; } echo '</div>'; ?>
2.将站点根目录下的wp-config.php文件中的数据库前缀修改为最新前缀,并保存就可以了。
如果你是通过FTP将wp-config.php文件文件下载到本地后修改,还需要将保存后的文件上传至服务器并覆盖原有文件。
MySQL数据库备份命令
linux下
1 导出一个数据库的结构
mysqldump -d dbname -uroot -p > dbname.sql
2 导出多个数据库的结构
mysqldump -d -B dbname1 dbname2 -uroot -p > dbname.sql
3 导出一个数据库中数据(不包含结构)
mysqldump -t dbname -uroot -p > dbname.sql
4 导出多个数据库中数据(不包含结构)
mysqldump -t -B dbname1 dbname2 -uroot -p > dbname.sql
5 导出一个数据库的结构以及数据
mysqldump dbname -uroot -p > dbname.sql
6 导出多个数据库的结构以及数据
mysqldump -B dbname1 dbname2 -uroot -p > dbname.sql
7 导出一个数据库中一个表的结构
mysqldump -d dbname1 tablename -uroot -p > tablename.sql
8 导出一个数据库中多个表的结构
mysqldump -d -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql
9 导出一个数据库中一个表的数据(不包含结构)
mysqldump -t dbname1 tablename -uroot -p > tablename.sql
10 导出一个数据库中多个表的数据(不包含结构)
mysqldump -t -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql
11 导出一个数据库中一个表的结构以及数据
mysqldump dbname1 tablename -uroot -p > tablename.sql
12 导出一个数据库中多个表的结构以及数据
mysqldump -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql
存储过程&函数操作
1 只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,需要同时使用-d)
mysqldump -R -ndt dbname -u root -p > dbname.sql
2 只导出事件
mysqldump -E -ndt dbname -u root -p > dbname.sql
3 不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)
mysqldump –skip-triggers dbname1 -u root -p > dbname.sql
把导出的数据导入到数据库
mysql -u root -p
use dbname;
source dbname.sql
总结一下:
-d 结构(–no-data:不导出任何数据,只导出数据库表结构)
-t 数据(–no-create-info:只导出数据,而不添加CREATE TABLE 语句)
-n (–no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
-R (–routines:导出存储过程以及自定义函数)
-E (–events:导出事件)
–triggers (默认导出触发器,使用–skip-triggers屏蔽导出)
-B (–databases:导出数据库列表,单个库时可省略)
–tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t
②同时 不 导出结构和数据可使用-ntd
③只导出存储过程和函数可使用-R -ntd
④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
⑤只导出结构&函数&事件&触发器使用 -R -E -d
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
三 . shell mode:
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
仅仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql
还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=... -C databasename
关于ajax跨域问题
flash跨域加载只要求服务器根目录下有crossdomain即可,ajax跨域可以用jsonp解决
简单点说,就是访问的url里加上callback参数,就像这样:
http://xxx.com/getAuctionReport.php?start_time=2013-09-26+9:15:7&end_time=2013-09-26+10:17:13&code=all&vendor=1&callback=aaa
返回:
aaa({jsondata});
然后在页面定义一个function aaa(s){alert(s);}
mysql创建自增id
CREATE TABLE `da` (
`id` INT(12) NOT NULL AUTO_INCREMENT,
`DATE` DATE DEFAULT NULL,
PRIMARY KEY (`id`)
)