免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: luren04
打印 上一主题 下一主题

【申请加精】MySQL 5.1参考手册  关闭 [复制链接]

论坛徽章:
0
61 [报告]
发表于 2008-04-15 12:43 |只看该作者

3.4. 获得数据库和表的信息

如果你忘记数据库或表的名字,或给定的表的结构是什么(例如,它的列叫什么),怎么办?MySQL通过提供数据库及其支持的表的信息的几个语句解决这个问题。
你已经见到了SHOW DATABASES,它列出由服务器管理的数据库。为了找出当前选择了哪个数据库,使用DATABASE函数:

mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| menagerie  |+------------+如果你还没选择任何数据库,结果是NULL。

为了找出当前的数据库包含什么表(例如,当你不能确定一个表的名字),使用这个命令:

mysql> SHOW TABLES;+---------------------+| Tables in menagerie |+---------------------+| event               || pet                 |+---------------------+如果你想要知道一个表的结构,可以使用DESCRIBE命令;它显示表中每个列的信息:

mysql> DESCRIBE pet;+---------+-------------+------+-----+---------+-------+| Field   | Type        | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| name    | varchar(20) | YES  |     | NULL    |       || owner   | varchar(20) | YES  |     | NULL    |       || species | varchar(20) | YES  |     | NULL    |       || sex     | char(1)     | YES  |     | NULL    |       || birth   | date        | YES  |     | NULL    |       || death   | date        | YES  |     | NULL    |       |+---------+-------------+------+-----+---------+-------+Field显示列名字,Type是列的数据类型,Null表示列是否能包含NULL值,Key显示列是否被索引而Default指定列的默认值。

如果表有索引,SHOW INDEX FROM tbl_name生成有关索引的信息。

论坛徽章:
0
62 [报告]
发表于 2008-04-15 12:44 |只看该作者

3.5. 在批处理模式下使用mysql

在前面的章节中,你交互式地使用mysql输入查询并且查看结果。你也可以以批模式运行mysql。为了做到这些,把你想要运行的命令放在一个文件中,然后告诉mysql从文件读取它的输入:
shell> mysql < batch-file如果在Windows下运行mysql,并且文件中有一些可以造成问题的特殊字符,可以这样操作:

C:\> mysql -e "source batch-file"如果你需要在命令行上指定连接参数,命令应为:

shell> mysql -h host -u user -p < batch-fileEnter password: ********当这样操作mysql时,则创建一个脚本文件,然后执行脚本。

如果你想在语句出现错误的时候仍想继续执行脚本,则应使用--force命令行选项。

为什么要使用一个脚本?有很多原因:

如果你需要重复运行查询(比如说,每天或每周),可以把它编成一个脚本,则每次执行时不必重新键入。
可以通过拷贝并编辑脚本文件从类似的现有的查询生成一个新查询。
当你正在开发查询时,批模式也是很有用的,特别对多行命令或多语句命令序列。如果你犯了一个错误,你不必重新输入所有内容,只需要编辑脚本来改正错误,然后告诉mysql再次执行脚本。
如果你有一个产生多个输出的查询,你可以通过一个分页器而不是盯着它翻屏到屏幕的顶端来运行输出:
·                shell> mysql < batch-file | more你可以捕捉文件中的输出以便进行进一步的处理:
·                shell> mysql < batch-file > mysql.out你可以将脚本分发给另外的人,以便他们也能运行命令。
某些情况不允许交互地使用,例如, 当你从一个cron任务中运行查询时。在这种情况下,你必须使用批模式。
当你以批模式运行mysql时,比起你交互地使用它时,其默认输出格式是不同的(更简明些)。例如,当交互式运行SELECT DISTINCT species FROM pet时,输出应为:



+---------+| species |+---------+| bird    || cat     || dog     || hamster || snake   |+---------+但是当以批模式运行时,输出应为:

speciesbirdcatdoghamstersnake如果你想要在批模式中得到交互输出格式,使用mysql -t。为了回显以输出被执行的命令,使用mysql -vvv。

你还可以使用源代码或 \.命令从mysql提示符运行脚本:

mysql> source filename;mysql> \. filename

论坛徽章:
0
63 [报告]
发表于 2008-04-15 12:45 |只看该作者

3.6. 常用查询的例子

下面是一些学习如何用MySQL解决一些常见问题的例子。

在一些例子中,使用数据库表“shop”来储存某个商人(经销商)的每件物品(物品号)的价格。假定每个商人对每项物品有一个固定价格,那么(物品,商人)即为该记录的主关键字。

启动命令行工具mysql并选择数据库:

shell> mysql your-database-name(在大多数MySQL中,你可以使用test数据库)。

你可以使用以下语句创建示例表:

mysql> CREATE TABLE shop (    -> article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,    -> dealer  CHAR(20)                 DEFAULT ''     NOT NULL,    -> price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL,    -> PRIMARY KEY(article, dealer));mysql> INSERT INTO shop VALUES    -> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),    -> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);执行语句后,表应包含以下内容:

mysql> SELECT * FROM shop;+---------+--------+-------+| article | dealer | price |+---------+--------+-------+|    0001 | A      |  3.45 ||    0001 | B      |  3.99 ||    0002 | A      | 10.99 ||    0003 | B      |  1.45 ||    0003 | C      |  1.69 ||    0003 | D      |  1.25 ||    0004 | D      | 19.95 |+---------+--------+-------+

论坛徽章:
0
64 [报告]
发表于 2008-04-15 12:46 |只看该作者
3.6.1. 列的最大值
“最大的物品号是什么?”

SELECT MAX(article) AS article FROM shop; +---------+ | article | +---------+ | 4 | +---------+ 3.6.2. 拥有某个列的最大值的行
任务:找出最贵物品的编号、销售商和价格。
这很容易用一个子查询做到:

SELECT article, dealer, priceFROM   shopWHERE  price=(SELECT MAX(price) FROM shop);另一个解决方案是按价格降序排序所有行并用MySQL特定LIMIT子句只得到第一行:

SELECT article, dealer, priceFROM shopORDER BY price DESCLIMIT 1;注:如果有多项最贵的物品( 例如每个的价格为19.95),LIMIT解决方案仅仅显示其中一个!

3.6.3. 列的最大值:按组
任务:每项物品的的最高价格是多少?

SELECT article, MAX(price) AS price FROM shop GROUP BY article +---------+-------+ | article | price | +---------+-------+ | 0001 | 3.99 | | 0002 | 10.99 | | 0003 | 1.69 | | 0004 | 19.95 | +---------+-------+ 3.6.4. 拥有某个字段的组间最大值的行
任务:对每项物品,找出最贵价格的物品的经销商。

可以用这样一个子查询解决该问题:

SELECT article, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article); 3.6.5. 使用用户变量
你可以清空MySQL用户变量以记录结果,不必将它们保存到客户端的临时变量中。(参见 9.3节,“用户变量”.)。

例如,要找出价格最高或最低的物品的,其方法是:

mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price; +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0003 | D | 1.25 | | 0004 | D | 19.95 | +---------+--------+-------+ 3.6.6. 使用外键
在MySQL中,InnoDB表支持对外部关键字约束条件的检查。参见15.2节,“InnoDB存储引擎”。还可以参见 1.8.5.5节,“外键”。

只是联接两个表时,不需要外部关键字。对于除InnoDB类型的表,当使用REFERENCES tbl_name(col_name)子句定义列时可以使用外部关键字,该子句没有实际的效果,只作为备忘录或注释来提醒,你目前正定义的列指向另一个表中的一个列。执行该语句时,实现下面很重要:

·         MySQL不执行表tbl_name 中的动作,例如作为你正定义的表中的行的动作的响应而删除行;换句话说,该句法不会致使ON DELETE或ON UPDATE行为(如果你在REFERENCES子句中写入ON DELETE或ON UPDATE子句,将被忽略)。

·         该句法可以创建一个column;但不创建任何索引或关键字。

·         如果用该句法定义InnoDB表,将会导致错误。

你可以使用作为联接列创建的列,如下所示:

CREATE TABLE person (    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,    name CHAR(60) NOT NULL,    PRIMARY KEY (id)); CREATE TABLE shirt (    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,    style ENUM('t-shirt', 'polo', 'dress') NOT NULL,    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,    owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),    PRIMARY KEY (id)); INSERT INTO person VALUES (NULL, 'Antonio Paz'); SELECT @last := LAST_INSERT_ID(); INSERT INTO shirt VALUES(NULL, 'polo', 'blue', @last),(NULL, 'dress', 'white', @last),(NULL, 't-shirt', 'blue', @last); INSERT INTO person VALUES (NULL, 'Lilliana Angelovska'); SELECT @last := LAST_INSERT_ID(); INSERT INTO shirt VALUES(NULL, 'dress', 'orange', @last),(NULL, 'polo', 'red', @last),(NULL, 'dress', 'blue', @last),(NULL, 't-shirt', 'white', @last); SELECT * FROM person;+----+---------------------+| id | name                |+----+---------------------+|  1 | Antonio Paz         ||  2 | Lilliana Angelovska |+----+---------------------+ SELECT * FROM shirt;+----+---------+--------+-------+| id | style   | color  | owner |+----+---------+--------+-------+|  1 | polo    | blue   |     1 ||  2 | dress   | white  |     1 ||  3 | t-shirt | blue   |     1 ||  4 | dress   | orange |     2 ||  5 | polo    | red    |     2 ||  6 | dress   | blue   |     2 ||  7 | t-shirt | white  |     2 |+----+---------+--------+-------+  SELECT s.* FROM person p, shirt s WHERE p.name LIKE 'Lilliana%'   AND s.owner = p.id   AND s.color <> 'white'; +----+-------+--------+-------+| id | style | color  | owner |+----+-------+--------+-------+|  4 | dress | orange |     2 ||  5 | polo  | red    |     2 ||  6 | dress | blue   |     2 |+----+-------+--------+-------+按照这种方式使用,REFERENCES子句不会显示在SHOW CREATE TABLE或DESCRIBE的输出中:

SHOW CREATE TABLE shirt\G*************************** 1. row ***************************Table: shirtCreate Table: CREATE TABLE `shirt` (`id` smallint(5) unsigned NOT NULL auto_increment,`style` enum('t-shirt','polo','dress') NOT NULL,`color` enum('red','blue','orange','white','black') NOT NULL,`owner` smallint(5) unsigned NOT NULL,PRIMARY KEY  (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1在列定义中,按这种方式使用REFERENCES作为注释或“提示”适用于表MyISAM和BerkeleyDB。

3.6.7. 根据两个键搜索
可以充分利用使用单关键字的OR子句,如同AND的处理。

一个比较灵活的例子是寻找两个通过OR组合到一起的关键字:

SELECT field1_index, field2_index FROM test_tableWHERE field1_index = '1' OR  field2_index = '1'该情形是已经优化过的。参见7.2.6节,“索引合并优化”。

还可以使用UNION将两个单独的SELECT语句的输出合成到一起来更有效地解决该问题。参见13.2.7.2节,“UNION语法
”。

每个SELECT只搜索一个关键字,可以进行优化:

SELECT field1_index, field2_index    FROM test_table WHERE field1_index = '1'UNIONSELECT field1_index, field2_index    FROM test_table WHERE field2_index = '1';

论坛徽章:
0
65 [报告]
发表于 2008-04-15 12:47 |只看该作者
3.6.8. 根据天计算访问量
下面的例子显示了如何使用位组函数来计算每个月中用户访问网页的天数。

CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,             day INT(2) UNSIGNED ZEROFILL);INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),            (2000,2,23),(2000,2,23);示例表中含有代表用户访问网页的年-月-日值。可以使用以下查询来确定每个月的访问天数:

SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1       GROUP BY year,month;将返回:

+------+-------+------+| year | month | days |+------+-------+------+| 2000 |    01 |    3 || 2000 |    02 |    2 |+------+-------+------+该查询计算了在表中按年/月组合的不同天数,可以自动去除重复的询问。

3.6.9. 使用AUTO_INCREMENT
可以通过AUTO_INCREMENT属性为新的行产生唯一的标识:

CREATE TABLE animals (     id MEDIUMINT NOT NULL AUTO_INCREMENT,     name CHAR(30) NOT NULL,     PRIMARY KEY (id) ); INSERT INTO animals (name) VALUES     ('dog'),('cat'),('penguin'),    ('lax'),('whale'),('ostrich'); SELECT * FROM animals;将返回:

+----+---------+| id | name    |+----+---------+|  1 | dog     ||  2 | cat     ||  3 | penguin ||  4 | lax     ||  5 | whale   ||  6 | ostrich |+----+---------+你可以使用LAST_INSERT_ID()SQL函数或mysql_insert_id() C API函数来查询最新的AUTO_INCREMENT值。这些函数与具体连接有关,因此其返回值不会被其它执行插入功能的连接影响。

注释:对于多行插入,LAST_INSERT_ID()和mysql_insert_id()从插入的第一行实际返回AUTO_INCREMENT关键字。在复制设置中,通过该函数可以在其它服务器上正确复制多行插入。

对于MyISAM和BDB表,你可以在第二栏指定AUTO_INCREMENT以及多列索引。此时,AUTO_INCREMENT列生成的值的计算方法为:MAX(auto_increment_column) + 1 WHERE prefix=given-prefix。如果想要将数据放入到排序的组中可以使用该方法。

CREATE TABLE animals (    grp ENUM('fish','mammal','bird') NOT NULL,    id MEDIUMINT NOT NULL AUTO_INCREMENT,    name CHAR(30) NOT NULL,    PRIMARY KEY (grp,id)); INSERT INTO animals (grp,name) VALUES     ('mammal','dog'),('mammal','cat'),    ('bird','penguin'),('fish','lax'),('mammal','whale'),    ('bird','ostrich'); SELECT * FROM animals ORDER BY grp,id;将返回:

+--------+----+---------+| grp    | id | name    |+--------+----+---------+| fish   |  1 | lax     || mammal |  1 | dog     || mammal |  2 | cat     || mammal |  3 | whale   || bird   |  1 | penguin || bird   |  2 | ostrich |+--------+----+---------+请注意在这种情况下(AUTO_INCREMENT列是多列索引的一部分),如果你在任何组中删除有最大AUTO_INCREMENT值的行,将会重新用到AUTO_INCREMENT值。对于MyISAM表也如此,对于该表一般不重复使用AUTO_INCREMENT值。

如果AUTO_INCREMENT列是多索引的一部分,MySQL将使用该索引生成以AUTO_INCREMENT列开始的序列值。。例如,如果animals表含有索引PRIMARY KEY (grp, id)和INDEX(id),MySQL生成序列值时将忽略PRIMARY KEY。结果是,该表包含一个单个的序列,而不是符合grp值的序列。

要想以AUTO_INCREMENT值开始而不是1,你可以通过CREATE TABLE或ALTER TABLE来设置该值,如下所示:

mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;关于AUTO_INCREMENT的详细信息:

·         如何为列指定AUTO_INCREMENT属性:13.1.5节,“CREATE TABLE语法”和 13.1.2节,“ALTER TABLE语法”。

·         AUTO_INCREMENT的动作取决于SQL模式:5.3.2节,“SQL服务器模式”。

·         找出含有最新AUTO_INCREMENT值的行:12.1.3节,“比较函数和操作符”。

·         设置将用到的AUTO_INCREMENT值: 13.5.3节,“SET语法” 。

·         AUTO_INCREMENT和复制:6.7节,“复制特性和已知问题”.

·         AUTO_INCREMENT相关的可用于复制的Server-system变量(auto_increment_increment和auto_increment_offset):5.3.3节,“服务器系统变量”。

论坛徽章:
0
66 [报告]
发表于 2008-04-15 12:48 |只看该作者

第4章:MySQL程序概述

目录

4.1. MySQL程序概述
4.2. 调用MySQL程序
4.3. 指定程序选项
4.3.1. 在命令行上使用选项
4.3.2. 使用选项文件
4.3.3. 用环境变量指定选项
4.3.4. 使用选项设置程序变量

本章简要概述了MySQL AB提供的命令行程序,并讨论了运行这些程序时如何指定选项。大多数程序具有其操作专用的选项,但指定选项的语法都近似。后面的几章更加详细地描述了各个程序,包括它们识别的选项。

MySQL AB还提供了3个GUI客户程序供MySQL服务器使用:

·         MySQL管理器:该工具用于管理MySQL服务器、数据库、表以及用户。

·         MySQL查询浏览器:该图形工具由MySQL AB提供,用于创建、执行以及优化对MySQL数据库的查询。

·         MySQL移植工具包:该工具可以帮助你将计划和数据从其它关系数据库管理系统移植到MySQL。

论坛徽章:
0
67 [报告]
发表于 2008-04-15 12:49 |只看该作者

4.1. MySQL程序概述

MySQL AB提供了几种类型的程序:

·         MYSQL服务器和服务器启动脚本:

o        mysqld是MySQL服务器

o        mysqld_safe、mysql.server和mysqld_multi是服务器启动脚本

o        mysql_install_db初始化数据目录和初始数据库

在第5章:数据库管理中详细讨论了这些程序。

·         访问服务器的客户程序:

o        mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。

o        mysqladmin是用于管理功能的客户程序。

o        mysqlcheck执行表维护操作。

o        mysqldump和mysqlhotcopy负责数据库备份。

o        mysqlimport导入数据文件。  

o        mysqlshow显示信息数据库和表的相关信息。

在第8章:客户端和实用工具程序中详细讨论了这些程序。

·         独立于服务器操作的工具程序:

o        myisamchk执行表维护操作。

o        myisampack产生压缩、只读的表。

o        mysqlbinlog是处理二进制日志文件的实用工具。

o        perror显示错误代码的含义。

在第5章:数据库管理中详细讨论了myisamchk。在第8章:客户端和实用工具程序中详细讨论了其它程序。

大多数MySQL分发包括上述的全部程序,只是不包含那些与平台相关的程序。(例如,在Windows中不使用服务器启动脚本)。不同的只是RPM分发更加具体化。可能一个RPM是服务器分发,另一个RPM是客户程序分发等等。如果你丢失了一个或多个程序,要想查阅关于分发类型和它们所包含内容的信息,参见第2章:安装MySQL。也可能需要安装一些其它内容。

论坛徽章:
0
68 [报告]
发表于 2008-04-15 12:50 |只看该作者

4.2. 调用MySQL程序

要想从命令行调用MySQL程序(即从shell或命令提示),应输入程序名,并随后输入指导操作发的选项或其它参量。下面的命令显示了一些程序调用的例子。“shell>”表示命令解释符提示;并不是输入的部分。你所看见的具体提示取决于命令解释符。典型提示符:sh或bash为$,csh或tcsh为%,Windows command.com或cmd.exe为C:\>。

shell> mysql testshell> mysqladmin extended-status variablesshell> mysqlshow --helpshell> mysqldump --user=root personnel以破折号开始的参数为选项参量。它们通常指定程序与服务器的连接类型或影响其操作模式。关于选项语法的描述参见4.3节,“指定程序选项”。

非选项参数(不以破折号开始的参量)可以为程序提供更详细的信息。例如,mysql程序将第一个非选项参量解释为数据库名,因此命令 mysql test表示你想要使用test数据库。

后面的章节描述了具体的程序,表示程序可以理解的选项,并描述了其它非选项参量的含义。

部分选项对部分程序是通用的。最常用的是指定连接参数的--host、--user和--password选项。它们指示MySQL服务器运行的主机和MySQL账户的用户名和 密码。所有MySQL客户程序可以理解这些选项;它们允许你指定连接哪个服务器,以及在该服务器上使用的 账户。

你也许会发现需要使用MySQL程序安装的bin目录的路径名来调用MySQL程序。如果你试图不在bin目录下运行MySQL程序,可能会遇到“程序未找到”错误。为了更方便地使用MySQL,可以将bin目录的路径名添加到PATH环境变量中。然后运行程序时只需要输入程序名,而不需要输入整个路径名。

关于设置PATH的指令的命令解释符请查阅相关文档。设置环境变量的语法与解释符有关。

论坛徽章:
0
69 [报告]
发表于 2008-04-15 12:51 |只看该作者
4.3.3. 用环境变量指定选项
要想用环境变量指定选项,使用适用注释处理器的语法来设置变量。例如,在Windows或NetWare中,可以设置USER变量来指定MySQL账户名。要想实现,使用语法:

SET USER=your_name在Unix中的语法取决于你的外壳。假定你想要使用MYSQL_TCP_PORT变量指定TCP/IP端口号。典型的语法为(例如sh、bash、zsh等等):

MYSQL_TCP_PORT=3306export MYSQL_TCP_PORT第1个命令设置变量,export命令将变量导出到外壳环境,以便其值可供MySQL和其它进程访问。

csh和tcsh有类似的问题。运行这些外壳时,使用setenv使外壳变量适用环境:

setenv MYSQL_TCP_PORT 3306可以在命令提示符下执行设置环境变量的命令,以便立即生效。这些设定值持续到你注销。要向让这些设定值在你每次登录时生效,将相应命令放入每次启动时命令解释符所读的启动文件中。在Windows中典型启动文件为AUTOEXEC.BAT,bash为.bash_profile,或者tcsh为.tcshrc。关于命令解释符的具体细节请查阅文档。

附录F:环境变量 了列出影响MySQL程序操作的所有环境变量。

4.3.4. 使用选项设置程序变量
许多MySQL程序有一些内部变量可以在运行时设置。程序变量的设置与带有值的其它长选项相同。例如,mysql有一个max_allowed_packet变量,可以控制其通信缓冲区的最大长度。要想为mysql将max_allowed_packet变量的值设置为16MB,使用下面的任何一个命令:

shell> mysql --max_allowed_packet=16777216shell> mysql --max_allowed_packet=16M第1个命令以字节指定值。第2个命令以兆字节指定值。变量值可以有一个后缀K、M或者G(可以为大写或小写)来表示千字节、兆字节或者十亿字节的单位。

在选项文件中,变量设定值没有引导破折号:

[mysql]max_allowed_packet=16777216或:

[mysql]max_allowed_packet=16M如果你喜欢,变量名的下划线可以为破折号。

注释:MySQL 5.1仍然能识别旧的语法--set-variable = option=value,但现在不赞成使用。

部分服务器变量可以在运行时设置。详情参见5.3.3.1节,“动态系统变量”。

论坛徽章:
0
70 [报告]
发表于 2008-04-15 12:52 |只看该作者

第5章:数据库管理

5.1. MySQL服务器和服务器启动脚本
5.1.1. 服务器端脚本和实用工具概述
5.1.2. mysqld-max扩展MySQL服务器
5.1.3. mysqld_safe:MySQL服务器启动脚本
5.1.4. mysql.server:MySQL服务器启动脚本
5.1.5. mysqld_multi:管理多个MySQL服务器的程序
5.2. mysqlmanager:MySQL实例管理器
5.2.1. 用MySQL实例管理器启动MySQL服务器
5.2.2. 连接到MySQL实例管理器并创建用户账户
5.2.3. MySQL实例管理器命令行选项
5.2.4. MySQL实例管理器配置文件
5.2.5. MySQL实例管理器识别的命令
5.3. mysqld:MySQL服务器
5.3.1. mysqld命令行选项
5.3.2. SQL服务器模式
5.3.3. 服务器系统变量
5.3.4. 服务器状态变量
5.4. mysql_fix_privilege_tables:升级MySQL系统表
5.5. MySQL服务器关机进程
5.6. 一般安全问题
5.6.1. 通用安全指南
5.6.2. 使MySQL在攻击者面前保持安全
5.6.3. Mysqld安全相关启动选项
5.6.4. LOAD DATA LOCAL安全问题
5.7. MySQL访问权限系统
5.7.1. 权限系统的作用
5.7.2. 权限系统工作原理
5.7.3. MySQL提供的权限
5.7.4. 与MySQL服务器连接
5.7.5. 访问控制, 阶段1:连接核实
5.7.6. 访问控制, 阶段2:请求核实
5.7.7. 权限更改何时生效
5.7.8. 拒绝访问错误的原因
5.7.9. MySQL 4.1中的密码哈希处理
5.8. MySQL用户账户管理
5.8.1. MySQL用户名和密码
5.8.2. 向MySQL增加新用户账户
5.8.3. 从MySQL删除用户账户
5.8.4. 限制账户资源
5.8.5. 设置账户密码
5.8.6. 使你的密码安全
5.8.7. 使用安全连接
5.9. 备份与恢复
5.9.1. 数据库备份
5.9.2. 示例用备份与恢复策略
5.9.3. 自动恢复
5.9.4. 表维护和崩溃恢复
5.9.5. myisamchk:MyISAM表维护实用工具
5.9.6. 建立表维护计划
5.9.7. 获取关于表的信息
5.10. MySQL本地化和国际应用
5.10.1. 数据和排序用字符集
5.10.2. 设置错误消息语言
5.10.3. 添加新的字符集
5.10.4. 字符定义数组
5.10.5. 字符串比较支持
5.10.6. 多字节字符支持
5.10.7. 字符集问题
5.10.8. MySQL服务器时区支持
5.11. MySQL日志文件
5.11.1. 错误日志
5.11.2. 通用查询日志
5.11.3. 二进制日志
5.11.4. 慢速查询日志
5.11.5. 日志文件维护
5.12. 在同一台机器上运行多个MySQL服务器
5.12.1. 在Windows下运行多个服务器
5.12.2. 在Unix中运行多个服务器
5.12.3. 在多服务器环境中使用客户端程序
5.13. MySQL查询高速缓冲
5.13.1. 查询高速缓冲如何工作
5.13.2. 查询高速缓冲SELECT选项
5.13.3. 查询高速缓冲配置
5.13.4. 查询高速缓冲状态和维护
本章涵盖了MySQL安装管理主题,例如配置服务器、管理用户账户和备份。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP