一、从命令行登录MySQL数据库服务器
1、登录使用默认3306端口的MySQL
/usr/local/mysql/bin/mysql -u root -p
2、通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能)
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307
3、通过socket套接字管理不同端口的多个MySQL
/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock
4、通过端口和IP管理不同端口的多个MySQL
/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1
--------------------------------------------------------------------------------
二、数据库操作SQL语句
1、显示服务器上当前存在什么数据库
SHOW DATABASES;
2、创建名称为rewin的数据库
CREATE DATABASE rewin;
3、删除名称为rewin的数据库
DROP DATABASE rewin;
4、选择rewin数据库
USE rewin;
--------------------------------------------------------------------------------
三、表操作SQL语句(登录之后必须用以上的USE命令选择一个数据库,再进行表操作)
1、显示当前数据库中存在什么表
SHOW TABLES;
2、创建数据库表zhangyan:在mysql>后粘贴以下SQL语句,存储引擎为MYISAM,字段id为主键、唯一索引。
CREATE TABLE `zhangyan` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` CHAR( 32 ) NOT NULL ,
`time` DATETIME NOT NULL ,
`number` FLOAT( 10 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
3、查看zhangyan表结构
DESCRIBE zhangyan;
4、从表中检索信息
4.1、从zhangyan表中检索所有记录
SELECT * FROM zhangyan;
4.2、从zhangyan表中检索特定的行:字段username等于abc,字段number等于1,按字段id降序排列
SELECT * FROM zhangyan WHERE username = 'abc' AND number='1' ORDER BY id DESC;
4.3、从zhangyan表中检索指定的字段:username和password
SELECT username, password FROM zhangyan;
4.4、从zhangyan表中检索出唯一的不重复记录:
SELECT DISTINCT username FROM zhangyan;
5、插入信息到zhangyan表
INSERT INTO zhangyan (id, username, password, time, number, content) VALUES ('', 'abc', '123456', '2007-08-06 14:32:12', '23.41', 'hello world');
6、更新zhangyan表中的指定信息
UPDATE zhangyan SET content = 'hello china' WHERE username = 'abc';
7、删除zhangyan表中的指定信息
DELETE FROM zhangyan WHERE id = 1;
8、清空zhangyan表
DELETE FROM zhangyan;
9、删除zhangyan表
DROP TABLE zhangyan;
10、更改表结构,将zhangyan表username字段的字段类型改为CHAR(25)
ALTER TABLE zhangyan CHANGE username username CHAR(25);
11、将当前目录下的mysql.sql导入数据库
SOURCE ./mysql.sql;
--------------------------------------------------------------------------------
四、数据库权限操作SQL语句
1、创建一个具有root权限,可从任何IP登录的用户sina,密码为zhangyan
GRANT ALL PRIVILEGES ON *.* TO 'sina'@'%' IDENTIFIED BY 'zhangyan';
2、创建一个具有“数据操作”、“结构操作”权限,只能从192.168.1.***登录的用户sina,密码为zhangyan
GRANT SELECT , INSERT , UPDATE , DELETE , FILE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON *.* TO 'sina'@'192.168.1.%' IDENTIFIED BY 'zhangyan';
3、创建一个只拥有“数据操作”权限,只能从192.168.1.24登录,只能操作rewin数据库的zhangyan表的用户sina,密码为zhangyan
GRANT SELECT , INSERT , UPDATE , DELETE ON rewin.zhangyan TO 'sina'@'192.168.1.24' IDENTIFIED BY 'zhangyan';
4、创建一个拥有“数据操作”、“结构操作”权限,可从任何IP登录,只能操作rewin数据库的用户sina,密码为zhangyan
GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON rewin.* TO 'sina'@'%' IDENTIFIED BY 'zhangyan';
5、删除用户
DROP USER 'sina'@'%';
PS:如果想了解更多的MySQL操作资料,请参考MySQL官方的中文参考手册
[文章作者:张宴 本文版本:v1.0 最后修改:2007.08.06 出处:http://blog.s135.com]
安装 aria2
aria2 目前已被包含到许多 Linux 发行版中,因此你可以通过所用的系统直接加以安装。例如,在 Debian/Ubuntu中,你可以在终端执行如下指令来安装 aria2:
sudo apt-get install aria2
如果你使用 Fedora Core,那么可以使用下列命令:
sudo yum install aria2
你也可以获取 aria2 的源代码,自行编译安装。当前aria2的最新版本为 1.9.3,可从这里下载:http://sourceforge.net/projects/aria2/files/stable/aria2-1.9.3 。
aria2 的使用方法
aria2 是命令行程序,使用非常简单。
一般使用 使用 aria2 下载文件,只需在命令后附加地址即可。如: aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2
分段下载 利用 aria2 的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用 aria2 的分段下载功能,你需要在命令中指定 s 选项。如: aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 这将使用 2 个连接来下载该文件。s 后面的参数值介于 1~5 之间,你可以根据实际情况选择。
断点续传 在命令中使用 c 选项可以断点续传文件。如: aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2
下载 torrent 文件 你也可以使用 aria2 下载 BitTorrent 文件。如: aria2c -o gutsy.torrent http://cdimage.ubuntu.com/daily-live/current/gutsy-desktop-i386.iso.torrent
关于 aria2 的更多用法,可以通过 man aria2c 查阅。
1. 下载axel源码并安装axel:
wget http://alioth.debian.org/frs/download.php/3015/axel-2.4.tar.gz
tar zxvf axel-2.4.tar.gz
cd axel-2.4
./configure
make
make install
2. 下载配置文件axelget.conf与axelget.py到yum里:
cd /etc/yum/pluginconf.d/
wget http://cnfreesoft.googlecode.com/svn/trunk/axelget/axelget.conf
cd /usr/lib/yum-plugins/
wget http://cnfreesoft.googlecode.com/svn/trunk/axelget/axelget.py
最后确认 /etc/yum.conf中plugins=1
3. 测试并安装yum-fastestmirror插件:
yum install -y yum-fastestmirror
注:axel插件也可以当独立下载工具来使用。当成独立下载工具使用时,适用于绝大部分Linux发行版。
使用参数如下:
一般使用:axel url(下载文件地址);
限速使用:加上 -s 参数,如 -s 10240,即每秒下载的字节数,这里是 10 Kb;
限制连接数:加上 -n 参数,如 -n 5,即打开 5 个连接。
以上配置在CentOS 5.x、Fedora 12上验证通过。在yum的时候可能会遇到很长时间都没有速度的现象,这时可以按Ctrl+C键。这样是终止了从当前站点的下载,然后会自动选择其他站点下载,速度会快很多。
acpid (Advanced Configuration and Power Interface)是为替代传统的APM电源管理标准而推出的新型电源管理标准。通常笔记本电脑需要启动电源进行管理,。支持的通用操作有:“电源开关 “,”电池监视“,”笔记本 Lid 开关“,“笔记本显示屏亮度“,“休眠”, “挂机”,等等。
anacron自动化运行任务守护进程。 Red Hat Linux 随带四个自动化任务的工具:cron、anacron、atd和 batc。大多数情况下,笔记本/台式机应该关闭 atd 和 anacron。注意:一些任务的执行需要 anacron,比如:清理 /tmp 或 /var。
apmd高级电源管理
atd 自动化运行任务守护进程。
auditd 审核信息,将消息写入控制台以及 audit_warn 电子邮件别名。用于存放内核生成的系统审查记录,这些记录会被一些程序使用。特别是对于SELinux用户来说。
autofs 自动安装管理进程automount,与NFS 相关,依赖于NIS,需要自动挂载硬盘,U盘等相关设备的话,该服务需要开启。
avahi-daemon avahi-dnsconfd avahi是zeroconf协议的现实,对于没有DNS情况下的本地网络服务很有用,有点类似于mDNS,除非你有兼容的设备或使用 zeroconf 协议的服务,否则应该关闭它。
bluetooth 蓝牙支持服务,没有蓝牙功能的可以关闭。
conman
console management
cpuspeed 监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。
crond 自动计划任务
cups (Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能
dhcdbd 这是一个让 DBUS 系统控制 DHCP 的接口,可以保留默认的关闭状态。
dund支持通过蓝牙拨号连接网络。
firstboot安装完之后的用户配置向导,用于第一次设置系统。
gpm(General Purpose Mouse Daemon )守护进程为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标的拷贝,粘贴操作以及弹出式菜单。
haldaemon硬件监控系统。
hidd 蓝牙对输入设备(键盘,鼠标)提供支持。
httpd Web服务器Apache守护进程,可用来提供HTML文件以及CGI动态内容服务。
ip6tables ipv6 tables防火墙守护进程。
ipmi (Intelligent Platform Management Interface)是智能型平台管理接口。
iptables linux下的标准防火墙,如果你直接连接到互联网,建议开启。
Irda 提供红外线间的设备支持。
irqbalance对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU,就不需要加载这个守护程序。
isdn这是一种互联网的接入方式。除非你使用 ISDN 猫来上网,否则你应该关闭它。
kdump 初始化kdump的脚本
kudzu硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。对于经常更换硬盘的服务器,建议开启该服务。
lvm2-monitor
mcstrans SELinux 转换服务,如果你使用 SELinux 就开启它,但你也可以关闭。
mdmonitor用来监测 Software RAID或LVM的信息。它不是一个关键性的服务,可以关闭它。
mdmpd 用来监测 Multi-Path 设备(该类型的存储设备能被一种以上的控制器或方法访问)应该被关闭。
messagebus 这是 Linux 的 IPC(Interprocess Communication,进程间通讯)服务。确切地说,它与 DBUS 交互,是重要的系统服务。强烈建议开启它。
multipathd microcode-ctl 可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。
netconsole
netfs (Network Filesystem Mounter)该服务用于在系统启动时自动挂载网络中的共享文件空间,比如:NFS,Samba 等等。如果你连接到局域网中的其它服务器并进行文件共享,就开启它。大多数台式机和笔记本用户应该关闭它。
netplugd用于监测网络接口并在接口状态改变时执行指定命令。建议保留它的默认关闭状态。
network激活已配置网络接口的脚本程序。
nfs这是用于 Unix/Linux/BSD 系列操作系统的标准文件共享方式。除非你需要以这种方式共享数据,否则关闭它。
nfslock NFS是一个流行的通过TCP/IP网络共享文件的协议,此守护进程提供了NFS文件锁定功能。
nscd 密码与群查找服务,此服务用于减慢N.I.S/Y.P.nist,ldap和hesiod之类的服务.专门为这些服务提供更长的中断时间。NIS, NIS+, LDAP, or hesiod服务密码控制。
ntpd该服务通过互联网自动更新系统时间。如果你能永久保持互联网连接,建议开启它,但不是必须的。
pand蓝牙个人区域网络,用于基于网络的家庭区域蓝牙技术。
pcscd智能卡支持。
portmap该守护进程用来支持RPC连接,RPC被用于NFS以及NIS 等服务。
psacct该守护进程包括几个工具用来监控进程活动的工具,包括 ac,lastcomm, accton和sardisc。
readahed_early readahead_later 开机内存载入优化, 该服务通过预先加载特定的应用程序到内存中以提供性能。
restrorecond用于给 SELinux 监测和重新加载正确的文件上下文(file contexts)。它不是必须的,但如果你使用 SELinux 的话强烈建议开启它。
rpcgssd rpcidmapd rpcsvcgssd 用于 NFS v4。除非你需要或使用 NFS v4,否则关闭它。
saslauthd使用SASL的认证守护进程。
sendmail 邮件服务器sendmail守护进程。
setroubleshoot查看selinux日志的程序。
smartd Self Monitor Analysis and Reporting Technology System,服务用于监测并预测磁盘失败或磁盘问题(前提:磁盘必须支持 SMART)。大多数的桌面用户不需要该服务,但建议开启它,特别是服务器。
sshd OpenSSH 服务器守护进程,允许远程登陆。
syslog 系统日志。
vncserver VNC (Virtual Network Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个”桌面”的轻量型协议。
winbind 是一款 Samba 组件,在 CentOS 系统下,他被包含在了 samba-common 包中。 Winbind 在Linux上实现了微软的RPC调用、可插式验证模块和名字服务切换,通过 samba 接口与 Windows 域控获得联系,可以使NT域用户能在Linux主机上以Linux用户身份进行操作。通过设定 Linux 服务器的 nss 配置,我们可以让系统通过 Winbind 程序来解析用户信息。
wpa_supplicant 无线设备支持。
xfs X Window字型服务器守护进程,为本地和远程X服务器提供字型集。
ypbind 为NIS(网络信息系统)客户机激活ypbind服务进程 。
yum-updatesd RPM操作系统自动升级和软件包管理守护进程,可以关闭。
我们使用的Linux和Windows可不太一样,用top命令得出来的可能不是真实使用的内存,用free命令第二行才是系统真实使用的内存。如 果发现PHP-CGI把你的内存占满了可不要惊慌哦。
Page cache和buffer cache一直以来是两个比较容易混淆的概念,在网上也有很多人在争辩和猜想这两个cache到底有什么区别,讨论到最后也一直没有一个统一和正确的结 论,在我工作的这一段时间,page cache和buffer cache的概念曾经困扰过我,但是仔细分析一下,这两个概念实际上非常的清晰。如果能够了解到这两个cache的本质,那么我们在分析io问题的时候可 能会更加得心应手。
Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
补充一点,在文件系统层 每个设备都会分配一个def_blk_ops的文件操作方法,这是设备的操作方法,在每个设备的inode下面会存在一个 radix tree,这个radix tree下面将会放置缓存数据的page页。这个page的数量将会在top程序的buffer一栏中显示。如果设备做了文件系统,那么会生成一个 inode,这个inode会分配ext3_ops之类的操作方法,这些方法是文件系统的方法,在这个inode下面同样存在一个radix tree,这里会缓存文件的page页,缓存页的数量在top程序的cache一栏进行统计。从上面的分析可以看出,2.6内核中的buffer cache和page cache在处理上是保持一致的,但是存在概念上的差别,page cache针对文件的cache,buffer是针对磁盘块数据的cache,仅此而已。
现在不都是只有page cache了吗? buffer pages其实也是page cache里面的页。只是多了一层抽象,通过buffer_head来进行一些访问管理
对,从Linux算法实现的角度,page cache和buffer cache目前是一样的,但是从功能抽象和具体应用来讲,这两者还是存在区别的,这一点可以从top工具的统计信息中看得出来,关注一下buffer和 cache这两个统计量。
增加一些资料:
A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use.
在终端中敲入:free
显 示: total used free shared buffers cached
Mem: 255268 238332 16936 0 85540 126384
-/+ buffers/cache:26408 228860
系统的总物理内存:255268Kb(256M),但系统 当前真正可用的内存并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。
我们使用total1、used1、 free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。
total1:表示物理 内存总量。
used1:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free1:未被分配的内存。
shared1:共享内存,一般系统不会用到,这里也不讨论。
buffers1: 系统分配但未被使用的buffers 数量。
cached1:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
used2:实际使用的buffers 与cache 总量,也是实际使用的内存总量。
free2:未被 使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
可以整理出如下等式:
total1 = used1 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1