??xml version="1.0" encoding="utf-8" standalone="yes"?>
一、连接MYSQL?/strong>
格式Q?mysql -hL地址 -u用户?Qp用户密码
1、例1Q连接到本机上的MYSQL?
首先在打开DOSH口Q然后进入目?mysqlbinQ再键入命o(h)mysql -uroot -pQ回车后提示你输密码Q如果刚安装好MYSQLQ超U用户root是没有密码的Q故直接回R卛_q入到MYSQL中了(jin)QMYSQL的提C符是:(x)mysql>
2、例2Q连接到q程L上的MYSQL。假设远E主机的IP为:(x)110.110.110.110Q用户名为root,密码为abcd123。则键入以下命o(h)Q?
mysql -h110.110.110.110 -uroot -pabcd123
Q注:u与root可以不用加空|其它也一P(j)
3、退出MYSQL命o(h)Q?exit Q回车)(j)
二、修改密码?/strong>
格式Qmysqladmin -u用户?-p旧密?password 新密?
1、例1Q给root加个密码ab12。首先在DOS下进入目录mysqlbinQ然后键入以下命?
mysqladmin -uroot -password ab12
注:(x)因ؓ(f)开始时root没有密码Q所?p旧密码一就可以省略?jin)?
2、例2Q再root的密码改为djg345?
mysqladmin -uroot -pab12 password djg345
三、增加新用户?br />
Q注意:(x)和上面不同,下面的因为是MYSQL环境中的命o(h)Q所以后面都带一个分号作为命令结束符Q?
格式Qgrant select on 数据?* to 用户名@dL identified by \"密码\"
?、增加一个用户test1密码为abcQ让他可以在ML上登录,q对所有数据库有查询、插入、修攏V删除的权限。首先用以root用户q入MYSQLQ然后键入以下命令:(x)
grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";
但例1增加的用h十分危险的,你想如某个h知道test1的密码,那么他就可以在internet上的M一台电(sh)脑上d你的mysql数据库ƈ对你的数据可以ؓ(f)所Ʋؓ(f)?jin),解决办法见??
?、增加一个用户test2密码为abc,让他只可以在localhost上登录,q可以对数据库mydbq行查询、插入、修攏V删除的操作Qlocalhost指本C机,即MYSQL数据库所在的那台LQ,q样用户即用知道test2的密码,他也无法从internet上直接访问数据库Q只能通过MYSQLL上的web|讉K?jin)?
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";
如果你不想test2有密码,可以再打一个命令将密码消掉?
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";
在上我们讲?jin)登录、增加用戗密码更改等问题。下我们来看看MYSQL中有x(chng)据库斚w的操作。注意:(x)你必首先登录到MYSQL中,以下操作都是在MYSQL的提C符下进行的Q而且每个命o(h)以分L(fng)束?
一、操作技?/strong>
1、如果你打命令时Q回车后发现忘记加分P你无重打一遍命令,只要打个分号回R可以了(jin)。也是说你可以把一个完整的命o(h)分成几行来打Q完后用分号作结束标志就O(jin)K?
2、你可以使用光标上下键调Z前的命o(h)。但以前我用q的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win?br />
二、显C命?/strong>
1、显C数据库列表?
show databases;
刚开始时才两个数据库Qmysql和test。mysql库很重要它里面有MYSQL的系l信息,我们改密码和新增用户Q实际上是用这个库q行操作?
2、显C库中的数据表:(x)
use mysqlQ?/span> Q/打开库,学过FOXBASE的一定不?x)陌生?
show tables;
3、显C数据表的结构:(x)
describe 表名;
4、徏库:(x)
create database 库名;
5、徏表:(x)
use 库名Q?
create table 表名 (字段讑֮列表)Q?/span>
6、删库和删表:
drop database 库名;
drop table 表名Q?/span>
7、将表中记录清空Q?
delete from 表名;
8、显C中的记录Q?
select * from 表名;
从文本文件执行SQL语句
三、一个徏库和以及(qing)插入数据的实?
|
注:(x)在徏表中Q?Q将ID设ؓ(f)长度?的数字字D?int(3)q让它每个记录自动加一:auto_incrementq不能ؓ(f)I?not null而且让他成ؓ(f)dDprimary keyQ?Q将NAME设ؓ(f)长度?0的字W字D(3Q将ADDRESS设ؓ(f)长度50的字W字D,而且~省gؓ(f)深圳。varchar和char有什么区别呢Q只有等以后的文章再说了(jin)。(4Q将YEAR设ؓ(f)日期字段?
如果你在mysql提示W键入上面的命o(h)也可以,但不方便调试。你可以以上命令原样写入一个文本文件中假设为school.sqlQ然后复制到c:\\下,q在DOS状态进入目录\\mysql\\binQ然后键入以下命令:(x)
mysql -uroot -p密码 < c:\\school.sql
如果成功Q空Z行无M昄Q如有错误,?x)有提示。(以上命o(h)已经调试Q你只要?/的注释去掉即可用)(j)?br />
四、将文本数据转到数据库中
1、文本数据应W合的格式:(x)字段数据之间用tab键隔开Qnull值用\\n来代?
例:(x)
3 rose 深圳二中 1976-10-10
4 mike 深圳一?1975-12-23
2、数据传入命?load data local infile \"文g名\" into table 表名;
注意Q你最好将文g复制到\\mysql\\bin目录下,q且要先用use命o(h)打表所在的库?
五、备份数据库Q(命o(h)在DOS的\\mysql\\bin目录下执行)(j)
mysqldump --opt school>school.bbb
注释:数据库school备䆾到school.bbb文gQschool.bbb是一个文本文Ӟ文g名Q取,打开看看你会(x)有新发现?
后记Q其实MYSQL的对数据库的操作与其它的SQLcL据库大同异Q?zhn)最好找本将SQL的书看看。我在这里只介绍一些基本的Q其实我也就只懂q些?jin),呵呵。最好的MYSQL教程q是"晏子"译的"MYSQL中文参考手?不仅免费每个相关|站都有下蝲Q而且它是最权威的。可惜不是象\"PHP4中文手册\"那样是chm的格式,在查扑և数命令的时候不太方ѝ?
innodb
InnoDB l?MySQL 提供?jin)具有事?commit)、回?rollback)和崩溃修复能?crash recovery capabilities)的事务安?transaction-safe (ACID compliant))型表。InnoDB 提供?jin)行?locking on row level)Q提供与 Oracle cd一致的不加锁读?non-locking read in SELECTs)。这些特性均提高?sh)(jin)多用户q发操作的性能表现。在InnoDB表中不需要扩大锁?lock escalation)Q因?InnoDB 的列锁定(row level locks)适宜非常的I间。InnoDB ?MySQL 上第一个提供外键约?FOREIGN KEY constraints)的表引擎?/p>
InnoDB 的设计目标是处理大容量数据库pȝQ它?CPU 利用率是其它Z盘的关pL据库引擎所不能比的。在技术上QInnoDB 是一套放?MySQL 后台的完整数据库pȝQInnoDB 在主内存?sh)徏立其专用的缓冲池用于高速缓冲数据和索引?InnoDB 把数据和索引存放在表I间里,可能包含多个文gQ这与其它的不一P举例来说Q在 MyISAM 中,表被存放在单独的文g中。InnoDB 表的大小只受限于操作pȝ的文件大,一般ؓ(f) 2 GB?/p>
?http://www.innodb.com/ 上可以找?InnoDB 最新的信息。InnoDB 手册的最新版本L被放|在那里Qƈ且在那里可以得到 InnoDB 的商业许?order commercial licenses)以及(qing)支持?/p>
InnoDB 现在(2001q十?在一些大的需高性能的数据库站点上被使用。著名的 Internet 新闻站点 Slashdot.org 是使用?InnoDB?Mytrix, Inc. ?InnoDB 表上存储?jin)超q?1 TB 的数据,而且另外的一个站点在 InnoDB 表上处理着q_每秒 800 ơ的插入/更新的负载?
MyISAM
MyISAM 是MySQL~省存贮引擎 .
每张MyISAM 桌被存放在盘在三个文?。frm 文g存放表格定义?数据文g是MYD (MYData) ?索引文g是MYI (MYIndex) 引?/p>
以下是一些细节和具体实现的差别:(x)
1.InnoDB不支持FULLTEXTcd的烦(ch)引?br /> 2.InnoDB 中不保存表的具体行数Q也是_(d)执行select count(*) from tableӞInnoDB要扫描一遍整个表来计有多少行,但是MyISAM只要单的d保存好的行数卛_。注意的是,当count(*)语句包含 where条gӞ两种表的操作是一L(fng)?br /> 3.对于AUTO_INCREMENTcd的字D,InnoDB中必d含只有该字段的烦(ch)引,但是在MyISAM表中Q可以和其他字段一起徏立联合烦(ch)引?br /> 4.DELETE FROM tableӞInnoDB不会(x)重新建立表,而是一行一行的删除?br /> 5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的Q解x(chng)法是首先把InnoDB表改成MyISAM表,导入数据后再Ҏ(gu)InnoDB表,但是对于使用的额外的InnoDBҎ(gu)(例如外键Q的表不适用?/p>
另外QInnoDB表的行锁也不是绝对的Q如果在执行一个SQL语句时MySQL不能定要扫描的范围QInnoDB表同样会(x)锁全表,例如update table set num=1 where name like “%aaa%”
M一U表都不是万能的Q只用恰当的针对业务cd来选择合适的表类型,才能最大的发挥MySQL的性能优势?/p>