转自:http://www.stackdoc.com/a/bianchengyuyan/_NET/20110907/127361.html
raw格式
对于未分区镜像文件直接使用loop:
mount -o loop image.img /mnt/image
已分区的镜像文件:
如果已知分区的起始位置
mount -o loop,offset=32256 image.img /mnt/image
或者使用losetup + kpartx
losetup /dev/loop0 image.img
kpartx -a /dev/loop0
mount /dev/mapper/loop0p1 /mnt/image
kpartx命令的作用,是让Linux內核读取一个设备上的分区表,然后生成代表相应分区的设备。
kpartx -l imagefile 可以查看一个映像文件中的分区,使用 kpartx -a imagefile 命令后,就可以通过 /dev/mapper/loop0pX (其中X是 分区号)来访问镜像。
qcow2格式
对于qcow2格式需要使用qemu-nbd这个工具
modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.img
mount /dev/nbd0p1 /mnt/image
如果是LVM格式的镜像:
vgscan
vgchange -ay
mount /dev/VolGroupName/LogVolName /mnt/image
最后使用结束需释放资源:
umount /mnt/image
vgchange -an VolGroupName
killall qemu-nbd
kpartx -d /dev/loop0
losetup -d /dev/loop0
1)如果是初次编译安装MySQL,mysql的root默认是没有口令的,此时就可以在shell提示符下用mysqladmin命令来改root用户口令:
mysqladmin -uroot password 'PASSWORD'
这样,MySQL数据库root用户的口令就被改成PASSWORD了。
2)如果不用上面的方法设置口令,可以直接登录root后用set password修改口令:
mysql> set password for root@localhost=password('PASSWORD');
这时root用户的口令就被改成PASSWORD了。
3)或者直接修改user表的root用户口令:
mysql> use mysql;
mysql> update user set password=password('PASSWORD') where user='root';
mysql> flush privileges;
这样,MySQL数据库root用户的口令也被改成PASSWORD了。其中最后一句命令flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令,这时非法用户还可以用root用户及空口令登陆,直到重启MySQL服务器。
如果忘记了root账户的口令,可以停掉MySQL服务器,然后通过以下方式开启mysql服务:
mysqld_safe --skip-grant-tables --user=mysql &
然后用上面第三种方法修改一下root账户的密码即可!
接触Linux这么久了,从未用源码完完整整装过LAMP,第一次来公司的面试题就是安装LAMP,有意思的是我当初php一直没装上,现在想想很简单,好在当时总监收留我了!这次我完全是为了自娱自乐而重做的,顺便纪念一下。当然实际应用的时候跟我的操作未必一样,按需要选择选项就可以了。无非就三个步骤:./configure,make,make install
以下源码包都是我在官网下的,虽然不是最新版,好用就行安装环境是CentOS Linux release 6.0。实际上,没有特殊要求通过yum安装就可以了,通过软件仓库安装LAMP的方式我之前就写过了:RHEL搭建本地LAMP环境
首先,安装Apache:
# tar zxvf httpd-2.2.19.tar.gz
# cd httpd-2.2.19
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --with-mpm=worker
–prefix是安装路径,–enable-so指启用DSO(Dynamic Shared Object)机制,当初我面试装PHP没法查看phpinfo就是因为没这个选项,–enable-rewrite启用Apache的重写规则以及URL重定向,–with-mpm=worker指定Apache的进程模型为worker,为了改善Apache的性能,实际试验的时候可以不选这个。确认没有错误直接执行下一步编译安装即可
# make && make install
安装完毕后就可以执行下一步开启apache了,通过浏览器访问能看到结果就说明apache安装成功了
# /usr/local/apache/bin/apachectl start
如果希望apache开机启动不妨把启动命令写入/etc/rc.local
# echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local
阅读全文…
最近没事翻翻朋友的书,看到了一章MySQL主从复制的章节,就顺便用手上的资源小做了一个实验。
MySQL主从复制的一些好处:
- 主从服务器设置的稳健值得以提升。如果主服务器发生故障,可以把本来作为备份的从服务器提升为新的主服务器。
- 在主服务器上分开处理用户的请求,可获得更短的响应时间。
- 用从服务器做数据备份而不会占用主服务器的系统资源。
实验环境:
- 宿主系统Windows XP,MySQL版本为5.5.12-log,IP:192.168.56.1,装有Virtual Box虚拟机。
- 虚拟机系统,RHEL5.3,MySQL版本5.1.59-log ,IP:192.168.56.101。
MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。
我的主MySQL默认没有启用二进制日志,所以我需要重启mysqld。首先,关闭 mysqld,打开 my.cnf,加入以下几行:
server-id = 1
log-bin = binlog
log-bin-index = binlog.index
阅读全文…
好久没有管理我的博客了,貌似事情有些多,就没大管。今天突然想做做笔记,竟然发现我的博客竟然出现了以下链接的页面http://www.iseelinux.com/hacked.php,我还以为空间出问题了,仔细一看竟然是被Hacked了,我擦,我的博客竟然也有人来黑!!!荣幸之至!不过希望以后有人黑我博客的时候给我发封邮件,告诉我怎么黑的。我这个小菜鸟也好好学学!
好在黑客只是改了我的数据库账号和密码,顺便篡改了一下首页,不然我还是有点小损失了。保留原来篡改的首页,以示纪念!
最近我学的东西很杂,工作的时间就随便看看。学完Python,虽然入门了,但这玩意儿博大精深,我连点皮毛都没学到。最近想学GUI编程,然后在网上DOWN了一个wxPython的脚本,但是执行的时候总会出来一个控制台,这个挺烦人的。我就想,可不可以生成一个exe文件,这样我直接执行exe文件就行了,那个难看的控制台就不需要了。再网上查了一下,没我想象的那么难,所以今天记录下来,备用,打算以后写几个图形程序。 阅读全文…
这个是我以前练习过的一个题目,主要为了练习,显然方法有些笨拙:
数组及循环练习:有一个字符串"1|2|3|4|5|6#1|2|3|4#1|2|3|4|5|6|7|8",请用“#”号将其分割为数组,再用“|”将其分割为2维数组。将数组中的所有元素打印出来。打印最长的一串第2维数组,打印所有元素中最大的数。
下面是实现的PHP代码: 阅读全文…
确切地说,我这是在描述一道题目,也是我学习PHP入门时做过的难度算是比较可以的一道题目:
有一张考勤表(存于mysql数据库中)如下,1要求页面打印出此表格,按姓名分组排序,同一人的中显示同一种颜色;2实现分页显示,每页2条,显示总页数,当前页,并可翻到指定页。
姓名 日期 迟到分钟
Andy 2011-06-15 15
Tom 2011-06-17 30
Andy 2011-06-25 36
Jack 2011-06-28 10
Jack 2011-06-28 120
Tom 2011-06-30 22
首先按照题目要求随便创建一个数据库,通过命令行或者MySQL管理工具导入相应表,我的表结构如下所示,相当简单:
DROP TABLE IF EXISTS `kaoqin`;
CREATE TABLE `kaoqin` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`date` date NOT NULL,
`mintime` int(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
LOCK TABLES `kaoqin` WRITE;
INSERT INTO `kaoqin` VALUES (1,'Andy','2011-06-15',15),(2,'Tom','2011-06-17',30),(3,'Andy','2011-06-25',36),(4,'Jack','2011-06-28',10),(5,'Jack','2011-06-28',120),(6,'Tom','2011-06-30',22);
阅读全文…
接触MySQL有一段时间了,甚至最近刚刚玩SQLite3,但是我对数据库的基本原理却几乎不明白,一些基本概念我也说不出来。今天无聊,就整理一下笔记吧!首先是SQL的概念:对数据库服务器中数据的管理,必须使用那个客户机程序成功连接以后,再通过必要的操作指令对其进行操作,这种数据库操作指令被称为SQL(Structured Query Language)语言,即结构化查询语言。
如果我猜的没错的话,现在大部分数据库都支持SQL吧,比如说Oracel、Sybase、SQL Server、PostgreSQL、SQLite等,好多好多。SQL语言主要包含四个部分:
- 数据定义语言(DDL):用于定义和管理数据对象,包括数据库/数据表等。例如:CREATE、DROP、ALTER等语句。
- 数据操作语言(DML):用于操作数据库对象中所包含的数据。例如:INSERT、UPDATE、DELETE语句。
- 数据库查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询、连接查询、嵌套查询。以及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客户机中显示。例如:SELECT语句。
- 数据库控制语句(DCL):用来管理数据库的语言,包含管理权限及数据更改。例如:GRANT、REVOKE、COMMIT、ROLLBAKE等语句。
以上最后的DCL是最让我感到陌生的了。我觉得了解了一些概念性的东西能够更有助于掌握数据库的核心内容,我不得不承认,数据库太复杂了,我也越来越对它感到着迷了。最近在玩SQLite,嘿嘿,好玩!
本来不想记录这个的,毕竟我还没写过Windows平台下的相关技巧,主要是在Windows下我只会上网聊QQ。至于开发,我觉得什么平台无所谓吧,尽管我喜欢用Linux,但还是Windows用的还是比较多,否则跟大家难以同步。
初学编程的人,也就是我这种人,我不建议用那些高级的IDE,毕竟研究IDE还要花一段时间,而且我们也不需要那么高级的功能。挑个合适的编辑器就行了,比如说:PSpad、VIM、Editplus、Notepad、Notepad++、UltraEdit、EmEditer等数不胜数不过这里有很多收费的,同事用Editplus的比较多,可是由于历史原因,我比较喜欢用Notepad++,可能功能比付费的差点,但绝不逊色。受我影响,也有几个同事开始使用Notepad++了。
最近学习Python我都是通过这个编辑器练习的,感觉还不错。我主要是装了两个插件:NppExec和Light Explorer,在最新的Notepad++中,两者都可以通过插件->Plugin Manager安装。 阅读全文…
近期评论