002AAA Mysql基础文档0924.docx

上传人:b****7 文档编号:10760484 上传时间:2023-02-22 格式:DOCX 页数:14 大小:217.42KB
下载 相关 举报
002AAA Mysql基础文档0924.docx_第1页
第1页 / 共14页
002AAA Mysql基础文档0924.docx_第2页
第2页 / 共14页
002AAA Mysql基础文档0924.docx_第3页
第3页 / 共14页
002AAA Mysql基础文档0924.docx_第4页
第4页 / 共14页
002AAA Mysql基础文档0924.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

002AAA Mysql基础文档0924.docx

《002AAA Mysql基础文档0924.docx》由会员分享,可在线阅读,更多相关《002AAA Mysql基础文档0924.docx(14页珍藏版)》请在冰豆网上搜索。

002AAA Mysql基础文档0924.docx

002AAAMysql基础文档0924

 

AAAMysql基础文档

 

撰写人

王永才

审核人

校对人

产品名称

Mysql基础文档

产品版本

文档描述

限制范围

撰写时间

2007-9-24

 

一、Mysql的安装

1、RPM包安装(推荐)

查看当前目录:

[root@lab246Mysql4.1.14.Rhel3]#pwd

/root/Mysql/Mysql4.1.14.Rhel3

显示RPM包信息

[root@lab246Mysql4.1.14.Rhel3]#ls-lh

总计17M

-rw-r--r--1rootroot3.9M06-1810:

06MySQL-client-standard-4.1.14-0.rhel3.i386.rpm

-rw-r--r--1rootroot2.6M06-1810:

06MySQL-devel-standard-4.1.14-0.rhel3.i386.rpm

-rw-r--r--1rootroot8.5M06-1810:

06MySQL-server-standard-4.1.14-0.rhel3.i386.rpm

-rw-r--r--1rootroot1.2M06-1810:

06MySQL-shared-standard-4.1.14-0.rhel3.i386.rpm

使用RPM升级安装Mysql

[root@lab246Mysql4.1.14.Rhel3]#rpm-UvhMysql4.1.14.Rhel3/MySQL-*--nodeps

2、源代码安装(作为交流)

首先下载Mysql合适版本的源代码

解压源码包:

mysql5.0.22.tgz

[root@lab246Mysql]#tarzxvfmysql5.0.22.tgz

Linux下源代码安装软件的基本流程:

configure;make;makeinstall,Mysql的源码安装也一样,

[root@lab246Mysql]#cdmysql5.0.22

[root@lab246Mysql]#./configure–prefix=/usr/local

[root@lab246Mysql]#make

[root@lab246Mysql]#makeinstall

[root@lab246Mysql]#scripts/mysql_install_db

[root@lab246Mysql]#/usr/local/mysql/bin/safe_mysqld&

以上只提供参考,对于平台工作人员可以做为了解。

二、Mysql基本操作

1、Mf

Mf是Mysql的配置文档,里面包括对Mysql的常规参数及不同需求的性能优化调整,这里给出一个示例,可以满足DCBI通常的应用:

由于DCBI在20070517及以后的版本中对Mysql的max_connections要求要大于128,而Mysql默认的max_connections为100,因此在升级或是新安装时请一定要注意。

另:

此文件在安装了Mysql的Linux机器的/usr/share/doc/MySQL-server-standard-4.1.14/目录有相关参考文档。

2、Mysql常用命令

A:

Mysql:

可以用于登录、导入数据。

如:

mysql–uroot–hlocalhost–pdcradius,意思是root用户以localhost主机登录到dcradius数据库,-p是使用密码。

Mysqldcradius<20070517up20070901.sql意思是,把20070517up20070901.sql这个数据库语句导入到dcradius数据库中。

B:

Mysqladmin:

用于对Mysql的简单管理

格式:

mysqladmin[OPTIONS]commandcommand....

常用command:

createdatabasenameCreateanewdatabase

debugInstructservertowritedebuginformationtolog

dropdatabasenameDeleteadatabaseandallitstables

extended-statusGivesanextendedstatusmessagefromtheserver

flush-hostsFlushallcachedhosts

flush-logsFlushalllogs

flush-statusClearstatusvariables

flush-tablesFlushalltables

flush-threadsFlushthethreadcache

flush-privilegesReloadgranttables(sameasreload)

killid,id,...Killmysqlthreads

passwordnew-passwordChangeoldpasswordtonew-password,MySQL4.1hashing.

old-passwordnew-passwordChangeoldpasswordtonew-passwordinoldformat.

pingCheckifmysqldisalive

processlistShowlistofactivethreadsinserver

reloadReloadgranttables

refreshFlushalltablesandcloseandopenlogfiles

shutdownTakeserverdown

statusGivesashortstatusmessagefromtheserver

start-slaveStartslave

stop-slaveStopslave

variablesPrintsvariablesavailable

versionGetversioninfofromserver

其中以红色标记最为常用,

C:

Mysqldump:

Mysql数据库备份命令

如:

mysqldump–optdcradius>2007-9-21.sql

对备份文件的导入:

mysqldcradius<2007-9-21.sql

D:

mysqlshow:

显示系统中已有的数据库

[root@lab246~]#mysqlshow

+-----------+

|Databases|

+-----------+

|dcradius|

|mysql|

|swap|

|test|

|zj|

+-----------+

三、Mysql数据库操作

关于Mysql的查询、更新、删除等操作,请参考《MySQL中文参考手册》第7章MySQL语言参考,这里讲的非常详细。

A、Mysql查询:

格式:

SELECT[STRAIGHT_JOIN][SQL_SMALL_RESULT][SQL_BIG_RESULT][HIGH_PRIORITY]

[DISTINCT|DISTINCTROW|ALL]

select_expression,...

[INTO{OUTFILE|DUMPFILE}'file_name'export_options]

[FROMtable_references

[WHEREwhere_definition]

[GROUPBYcol_name,...]

[HAVINGwhere_definition]

[ORDERBY{unsigned_integer|col_name|formula}[ASC|DESC],...]

[LIMIT[offset,]rows]

[PROCEDUREprocedure_name]]

1、登录到mysql:

[root@lab60root]#mysqldcradius

WelcometotheMySQLmonitor.Commandsendwith;or\g.

YourMySQLconnectionidis3505toserverversion:

4.1.14-standard

Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.

mysql>

2、查询Mysql中当前的已经存在的数据库:

showdatabases

mysql>showdatabases;

+----------+

|Database|

+----------+

|dcradius|

|mysql|

|test|

+----------+

3rowsinset(0.00sec)

3、打开目标数据库:

userdcradius;

mysql>usedcradius;

Databasechanged

4、显示当前数据库里的各个数据表:

showtables;

mysql>showtables;

+------------------------+

|Tables_in_dcradius|

+------------------------+

|ACCLIST|

|ACCSUBJECT|

|ACLLOG|

|ALERTINFO|

|AUTHORIZATIONGROUP|

………………..

|WEBREGINFO|

+------------------------+

74rowsinset(0.00sec)

5、显示某个数据表的表结构:

descUSERACCOUNT;

mysql>descUSERACCOUNT;

+------------------+-------------+------+-----+---------------------+----------------+

|Field|Type|Null|Key|Default|Extra

+------------------+-------------+------+-----+---------------------+----------------+

|ACCOUNTID|int(11)||PRI|NULL|auto_increment

|FEETYPEID|int(11)|||0|

|NEWFEETYPEID|int(11)|||0|

|ACCOUNTNAME|varchar(50)||MUL||

|LEFTMONEY|double(8,2)|YES||0.00|

|NEXTPAYDATE|datetime|YES|MUL|2099-12-3100:

00:

00|

|ACCSTAT|tinyint(4)||MUL|0|

|PREDAYTIME|datetime|YES||1900-01-0100:

00:

00|

|NPREDAY|tinyint(4)|YES||0|

|ISCHECKQUOTA|tinyint(4)|YES||0|

|ALLOW_LOCAL|tinyint(4)|YES||0|

|ISLOCKNEWFEETYPE|tinyint(4)|||0|

|PROHIBITDATE|datetime|YES||1900-01-0100:

00:

00|

+------------------+-------------+------+-----+---------------------+----------------+

13rowsinset(0.00sec)

6、常用数据查询语句:

select

查询USERACCOUNT表中所有数据条目

mysql>select*fromUSERACCOUNT;

查询USERACCOUNT表中所有数据条目,返回前10条数据

mysql>select*fromUSERACCOUNTlimit10;

查询USERACCOUNT表中所有数据条目,返回第10条以后的100条数据

mysql>select*fromUSERACCOUNTlimit10,100;

附加条件的具体查询

mysql>select*fromUSERACCOUNTwhereACCOUNTID=10;

mysql>select*fromUSERACCOUNTwhereACCOUNTID=10andFEETYPEID=2;

mysql>select*fromUSERACCOUNTwhereLEFTMONEY>10;

统计USERACCOUNT中所有数据条目

mysql>selectcount(*)fromUSERACCOUNT;

模糊查询,查询USERPARAM表中USERNAME字段以“wang”开头的所有用户

mysql>select*fromUSERPARAMwhereUSERNAMElike'wang%';

mysql>select*fromUSERPARAMwhereUSERNAMElike'wang%';

将查询输出到文本:

mysql>SELECT...INTOOUTFILE'file_name'(文件保存在当前数据库目录下)

B、数据插入:

INSERT

格式:

insertintotablename(字段A,字段B,字段C)values(‘数值A’,’数值B’,’数值C’);

1、增加admin的登录许可IP

mysql>insertintoOPLIMITIP(OPNAME,IPADDRESS)VALUES(‘admin’,’0.0.0.0/0’);

注意、关于INSERT语句,请参考《MySQL中文参考手册》第7章,在进行数据操作前请先备份数据,在确认无误后再进行相关操作。

C、数据更新:

UPDATE

格式:

UPDATE[LOW_PRIORITY]tbl_nameSETcol_name1=expr1,col_name2=expr2,...

[WHEREwhere_definition][LIMIT#]

UPDATE用新值更新现存表中行的列,SET子句指出哪个列要修改和他们应该被给定的值,WHERE子句,如果给出,指定哪个行应该被更新,否则所有行被更新。

如果你指定关键词LOW_PRIORITY,执行UPDATE被推迟到没有其他客户正在读取表时。

如果你从一个表达式的tbl_name存取列,UPDATE使用列的当前值。

例如,下列语句设置age为它的当前值加1:

mysql>UPDATEpersondataSETage=age+1;

UPDATE赋值是从左到右计算。

例如,下列语句两倍age列,然后加1:

mysql>UPDATEpersondataSETage=age*2,age=age+1;

如果你设置列为其它当前有的值,MySQL注意到这点并且不更新它。

D、DELECT

格式:

DELETE[LOW_PRIORITY]FROMtbl_name

[WHEREwhere_definition][LIMITrows]

DELETE从tbl_name表中删除满足由where_definition给出的条件的行,并且返回删除记录的个数。

如果你发出一个没有WHERE子句的DELETE,所有行都被删除。

MySQL通过创建一个空表来完成,它比删除每行要快。

在这种情况下,DELETE返回零作为受影响记录的数目。

(MySQL不能返回实际上被删除的行数,因为进行再创建而不是打开数据文件。

只要表定义文件“tbl_name.frm”是有效的,表才能这样被再创建,即使数据或索引文件破坏了)。

如果你确实想要知道在你正在删除所有行时究竟有对少记录被删除,并且愿意承受速度上的惩罚,你可以这种形式的一个ELETE语句:

mysql>DELETEFROMtbl_nameWHERE1>0;

注意这比没有WHERE子句的DELETEFROMtbl_name慢的多了,因为它一次删除一行。

如果你指定关键词LOW_PRIORITY,DELETE的执行被推迟到没有其他客户读取表后。

四、Mysql数据库复制

MySql数据库同步复制,该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。

主要用于对网络可靠性要求比较高的地方,比如,可以通过在网络中部署两套DCBI_Server,当主DCBI_Server出现问题时,自动跳转到从DCBI_Server进行认证,确保网络中用户正常接入。

环境描述:

系统:

RedhatLinuxAS3update8

Mysql版本:

Mysql4.1.14

复制数据库:

dcradius

服务器两台:

分别安装DCBI_Server(版本任意),DCBI_A(主):

192.168.1.245/24;DCBI_B(备):

192.168.1.246/24

DCBI_A上的配置:

Mysql>GRANTFILEON*.*TOdcradius@'192.168.1.246'IDENTIFIEDBY'digitalchina';

修改DCBI_A上的f文件,增加以下内容:

  server-id=1

  log-bin

  binlog-do-db=dcradius

通过showmasterstatus可以看到master上的一些信息。

DCBI_B上的配置:

Mysql>GRANTFILEON*.*TOdcradius@'192.168.1.245'IDENTIFIEDBY'digitalchina';

修改DCBI_B上的f文件,增加以下内容:

server-id=2

master-host=192.168.1.245

master-user=dcradius

master-password=digitalchina

master-port=3306

master-connect-retry=10

replicate-do-db=dcradius

五、DCBI升级脚本制作

DCBI的升级往往会涉及到对数据库结构的修改,比如对数据库字段的修改、添加、删除等,在这里就要求大家对每个版本之间在数据库结构方面的区别要了解清楚,不能遗漏每一个细节。

否则,在进行DCBI升级的时候都有可能遇到问题。

请大家在制作数据库升级脚本的时候一定要仔细仔细再仔细。

另外一个就是一直强调的数据备份!

1、所需工具(公司FTP中wangyc/tools/目录有相关工具的下载):

文件差异比较工具:

推荐BeyondCompare

文本编辑工具:

推荐EditPlus(可实现文本文档windows和Linux系统之间的转换)

现有DCBI版本的db_radius.sql文件和待升级的DCBI版本的db_radius.sql文件。

2、操作步骤:

A、找到当前DCBI版本的db_radius.sql和待升级的DCBI版本db_radius.sql文件,这里以20070717升级到20070901版本为例:

B、比较两个文件的差异,然后用Mysql语法把当前库结构修改成待升级版本的数据库结构。

关于BeyondCompare的使用,在BeyondCompare的会提示有几处差异、差异的具体位置等,在使用的时候可以多注意这方面的细节。

结合以上信息,制作DCBIV320070717到20070901的升级脚本如下:

ALTERTABLEFEETYPEADDCOLUMNISACCUMULATEtinyintdefault0;

ALTERTABLESTATIONADDCOLUMNFIRSTAUTHCHARGEtinyintNOTNULLdefault0;

ALTERTABLEUSERPARAMADDCOLUMNISFIRSTAUTHtinyintNOTNULLdefault0;

ALTERTABLEUSERPARAMADDCOLUMNACCUMULATION_TOTALdouble(8,2)NOTNULLdefault0;

ALTERTABLEUSERPARAMADDCOLUMNLASTONLINETIMEdatetimedefault'1970-01-0100:

00:

00';

updateOPGROUPsetOPPRIVILEGES='111111111111111111111111111111111111111111111111111111111111111111111111111'whereOPGROUPNAME='admin';

把以上内容保存为一个文本文档0717up0901.sql,通过mysqldcradius<0717up0901.sql升级现有数据库结构。

注意:

升级过程中会涉及到多个管理员的权限更改的问题,上面的脚本只改了默认管理员admin的相关权限,其它操作员的相关权限也需要修改。

关于DCBI的数据库升级方面更详细的可以参考《DCBI数据库升级脚本制作方法--20070802.doc》

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1