最近喜欢上玩DotA,于是从某地搞到简体中文版的冰封王座,没想到不能在英文版本的 WinXP 运行,在 Google 上搜索半天找到解决方案。注意,由于要修改游戏安装文件,请提前做好备份以防万一。
打开 WarCraft 安装目录,找到 game.dll 文件,用 UltraEdit 或者类似的编辑器打开此文件,搜索 16 进制字符串“3D 04 08 00 00 74 2A 3D 04”,将 74 修改为 EB,然后保存退出。
最近喜欢上玩DotA,于是从某地搞到简体中文版的冰封王座,没想到不能在英文版本的 WinXP 运行,在 Google 上搜索半天找到解决方案。注意,由于要修改游戏安装文件,请提前做好备份以防万一。
打开 WarCraft 安装目录,找到 game.dll 文件,用 UltraEdit 或者类似的编辑器打开此文件,搜索 16 进制字符串“3D 04 08 00 00 74 2A 3D 04”,将 74 修改为 EB,然后保存退出。
Access Flickr!
Bypasses the flickr.com fliter in Iran & …
Adblock Plus
Get grid of ads.
CacheViewer
This extenion is GUI Front-end of “about:cache”.
Allows searching and sorting memory and disk cache files.
CHM Reader
An extension make firefox support CHM file reading.
DownThemAll!
DownThemAll is all you can desire from a download manager: it features an advanced accelerator that increases speed up to 400% and it allows you to pause and resume downloads at any time.
Firebug
Web Development Evolved.
Foxmarks Bookmark Synchronizer
If you use Firefox on more than one computer, you’ll want Foxmarks. Install Foxmarks on each computer, and it will work silently in the background to keep your bookmarks synchronized.
Greasemonkey
Allows you to customize the way a webpage displays using small bits of JavaScript.
SingletonFox
Use only one instance of Firefox to handle all the URL requests.
SwitchProxy Tool
A tool that allow you to manage and switch between multiple proxy configurations quickly and easily.
—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: GnuPG v1.4.6 (GNU/Linux)
mQGiBEiaUa4RBACg8VXxnHN8vTyUpcqH9pPeUmY4xBqLXirqlSE++vDGmWPRFtGe
v+KU8TC1gH8Y7OO5j5oHrHZuJZOReTXpPfPG70T4psYW+jE3R6voiinYlt2/eEk1
CyKhuIC+W9jwKl4frKmvWo2cVhXJWriaF9MhwCv4oAs28IUwVFMx8DQRXwCg6Abn
8DRkqWINjSREL69ybAIUMuUD+wUM+rpKQUrAv4GK6TqXLSmjvVwPkAE+2CxS4He/
S/Tm84uhXqWWg26+oxLsPX4PY6nxeOg/oLCP8RdtbH/D1Vgb3YjFk/0X2/dUkEr8
dDHCNb3y9q36GfiHe8eVOKw6NVz4m09YaJKGREulxky0T5SeAsyI3yA5zT76hA/u
DGLOBACTx1fvbgRis4j6JSVFtnAWce9UZESCWrygHmqg0jOuTXjtD5RW7GAY3utl
8n493li9vNK9oQrwQeQJpKHi+jMIJ4SCEgyb5zr+y1hisvIScPUgb+LmeKEt179G
TlKV31uJljdJBeksZEXj23b6k5p/uVBVAmDghyVHwgp154FTILQfVmF5biBUc2Fp
IDxkZXJhbXgwMDdAZ21haWwuY29tPohgBBMRAgAgBQJImlGuAhsDBgsJCAcDAgQV
AggDBBYCAwECHgECF4AACgkQZOc0QlqRhmDFUwCeOWn0ScO9sOla1QzgcYkIq2k3
tCYAnRpLPxc1Ys6kvpOk4DGTro10/QR0uQENBEiaUa4QBAC+RKTwO9bG2C5Ij6+D
TdaUs+iE0JDp+TiDM2arayweB/UuRDn2aJen5WNgIgBh+I8xCEOB1bVLPFQvg2xc
3SmIAaJIw4DIfrHJywwOa0pYy0c4mXgV6IFLbGF1ID+HVavBvSeCVmoyx+Vw6fJz
YFUtF83pXaswFmMCKbXO5DyfUwADBgP8DeoydEj3ALSvCOeQV2+FnQmXDn9HIwgt
ILRUiRlBw0UHaFqVVWoubzmFg/hF7miSgETyOimStA4OEmAbjhowZ0FFdfG5g2ms
NOlJhOpw+RHOUSd5Cat0QvsPBilwVLx0FLkKT4HDrhFonTfDwiOgrq83+RfFkZxW
axrJRaEeORqISQQYEQIACQUCSJpRrgIbDAAKCRBk5zRCWpGGYEVsAKDKXCW7i0Ra
XrRhEGnPmMCGYr4ImQCeO3Y4NFwhB6JOLEHApj8kc/lK5Io=
=U0bF
—–END PGP PUBLIC KEY BLOCK—–
欢迎发送加密函件 ![]()
LOAD DATA INFILE
LOAD DATA INFILE “filename.txt” INTO TABLE tablename;
字段包括在单引号内,用 tab 键进行间隔,每行由 \n 换行,特殊字符用 \ 转义。
存储引擎
MyISAM(MySQL 默认)
ISAM
MEMORY
MERGE
BDB
InnoDB
用 ALTER TABLE 语句转换,比如:
alter table tablename type=innodb;
事务安全性的四个需求(ACID 原则):Atomicity, Consistency, Isolation, Durability。
MySQL 默认为 autocommit 模式。
mysql>set autocommit=0; #关闭 autocommit
在自动提交打开前提下开始事务:
mysql>start transaction;
完成后手动提交:
mysql>commit;
回滚:
mysql>rollback;
InnoDB 支持强制使用 foreign key。
创建存储过程 create procedure
设置分隔符 delimiter …
调用过程 call procedurename(@t);
查看该变量 select @t;
创建函数 create function
局部变量 declare variablename
游标(cursor)
控制结构
声明句柄

EXPLAIN
id
select_type
table
type
possible_keys
key
key_len
ref
rows
Extra
关联优化器
$myisamchk –analyze pathtomysqldatabase/table
$myisamchk –analyze pathtomysqldatabase/*.MYI
$myisamchk –analyze pathtomysqldatabase/*/*.MYI
mysql>analyze table tablename1, tablename2, …;
将列创建为索引
ALTER TABLE table ADD INDEX (column);
表的优化
mysql>OPTIMIZE TABLE tablename;
$myisamchk -r table
$myisamchk –sort-index –sort-records=1 pathtomysqldatabase/*/*.MYI
备份数据库
1. LOCK TABLES table lock_type [, table lock_type ...]
锁定类型 READE / WRITE,备份之前必须执行 FLUSH TABLES。
*******没明白*******
以文件方式备份
2. $mysqldump –opt –all-databases > backup-file.sql
再,停止 mysqld 进程,通过 –log-bin[=logfile] 重新启动进程。日志将记录备份后数据库发生的变化。
*******还是没明白*******
3. $mysqlhotcopy database /path/for/backup
再,停止 mysqld 进程,通过 –log-bin[=logfile] 重新启动进程。日志将记录备份后数据库发生的变化。
*******模模糊糊*******
恢复 MySQL 数据库
使用了方法 1,可将数据文件重新复制到安装 MySQL 的相同位置。
使用了方法 2,首先在导出文件中运行查询(???)从而将数据库重新构建至导出时的状态,接着将数据库更新至保存在二进制日志文件中的状态 —— $mysqlbinlog hostname-bin.[0-9]* | mysql
*******没明白*******
先 $mysql db_name < backup-file.sql 将转储文件读回到服务器,然后再更新。
设置主服务器和从服务器,略过
--eof--
p.s. 这一章基本没怎么看懂
p.s.2 貌似小站被墙了
意外发现 WordPress 彩蛋,已经有人发现了 http://www.youtube.com/watch?v=gkF4WLSkz-U
抽象类(abstract class): 不能被实例化.
抽象方法(abstract operation): 只提供了一个方法的声明, 但是不提供方法的具体实现.
包含抽象方法的任何类自身必须是抽象的.
使用 PEAR::DB 抽象类与数据库进行交互
安装: $sudo apt-get install php-pear
检查最新版本: $pear list-upgrades
升级 DB: $sudo pear upgrade DB
require_once(’DB.php’); # set for using PEAR DB
$dsn = “mysqli://$user:$pass@$host/$db_name”; # set up DSN
$db = $DB::connect($dsn); # connect to database
与实例化 mysqli 类连接数据库相比其实都差不多.
Prepared 语句向 MySQL 发送需要执行的查询模板, 再单独发送数据.
$query = “insert into table values(?, ?, …)”;
$stmt = $db->prepare($query);
$stmt->bind_param(”sssd”, $value1, $value2, …);
$stmt->execute();
$stmt->affected_rows;
除了 bind_param()[insert?] 还有 bind_result() [select?] 函数.
注意! 一定要细心! 下面使用上面的变量, 拼写要正确, 不要想当然 ![]()
设计 Web 数据库
列(Column), 又称域或属性.
行(row), 也称为记录.
表中的标志列称为键(key), 一个键可以由不止一列组成. 主键(primary key)和外键(foreign key). 考虑要建模的实际对象, 避免保存冗余数据(避免 3 种更新不规则: 修改, 插入, 删除). 使用原子列值, 每行的每个属性只储存一个数据. 确认所选择的键是唯一的, 要有意义, 事先考虑需要询问数据库的问题. 避免空属性的设计.
Web 数据库架构, 暂不讨论.
—————————————————————
创建 Web 数据库(仅学习 MySQL 数据库)
登录 MySQL Monitor: $mysql -h hostname -u username -p
-h 希望连接的主机, 默认为本机(localhost)
-u 登录时的用户名(可以不是 root)
-p 提示需要密码
创建 root:
$mysql -u root
mysql> SET PASSWORD FOR ”@’localhost’ = PASSWORD(’newpwd’);
mysql> SET PASSWORD FOR ”@’host_name’ = PASSWORD(’newpwd’);
删除匿名用户:
mysql> DELETE FROM mysql.user WHERE Host=’localhost’ AND User=”;
创建数据库: mysql> create database dbname;
(注意, 不能忘记分号!)
创建用户(最少权限原则):
GRANT privileges [columns]
ON item
TO user_name [IDENTIFIED BY 'password']
[REQUIRE ssl_options]
[WITH [GRANT OPTION | limit_options] ]
用户权限(PMWD3rd P164), 管理员权限(PMWD3rd P164), 特别权限(ALL, USAGE).
收回权限:
REVOKE privileges [columns]
ON item
FROM user_name
使用指定数据库:
mysql> use dbname;
或者
$mysql -D dbname -h hostname -u username -p
—————————————————————
创建数据库表, 略过.
—————————————————————
插入数据(INSERT):
INSERT LOW_PRIORITY DELAYED IGNORE [INTO] table [(column1, ...)] VALUES (value1, …);
注意: 会按顺序插入数据.
向指定列插入数据:
insert into tablename (column1, column2, …) values (’value1′, ‘value2′, …);
或者
insert into tablename set column1=’value1′, column2=’value2′, …;
将脚本插入数据库:
$mysql -h host -u username -p < name_insert.sql
—————————————————————
获取数据(SELECT):
略过.
—————————————————————
更新数据库记录:
UPDATE
创建后修改表:
ALTER TABLE
删除:
DELETE
DROP
–eof–