1、002AAA Mysql基础文档0924AAA Mysql基础文档撰写人王永才审核人校对人产品名称Mysql基础文档产品版本无文档描述限制范围无撰写时间2007-9-24一、Mysql的安装1、RPM包安装(推荐)查看当前目录:rootlab246 Mysql4.1.14.Rhel3# pwd/root/Mysql/Mysql4.1.14.Rhel3显示RPM包信息rootlab246 Mysql4.1.14.Rhel3# ls -lh总计 17M-rw-r-r- 1 root root 3.9M 06-18 10:06 MySQL-client-standard-4.1.14-0.rhel3
2、.i386.rpm-rw-r-r- 1 root root 2.6M 06-18 10:06 MySQL-devel-standard-4.1.14-0.rhel3.i386.rpm-rw-r-r- 1 root root 8.5M 06-18 10:06 MySQL-server-standard-4.1.14-0.rhel3.i386.rpm-rw-r-r- 1 root root 1.2M 06-18 10:06 MySQL-shared-standard-4.1.14-0.rhel3.i386.rpm使用RPM升级安装Mysqlrootlab246 Mysql4.1.14.Rhel3#
3、rpm -Uvh Mysql4.1.14.Rhel3/MySQL-* -nodeps2、源代码安装(作为交流)首先下载Mysql合适版本的源代码解压源码包:mysql5.0.22.tgzrootlab246 Mysql# tar zxvf mysql5.0.22.tgzLinux下源代码安装软件的基本流程:configure; make; make install,Mysql的源码安装也一样,rootlab246 Mysql#cd mysql5.0.22rootlab246 Mysql#./configure prefix=/usr/localrootlab246 Mysql#makeroot
4、lab246 Mysql#make installrootlab246 Mysql#scripts/mysql_install_dbrootlab246 Mysql# /usr/local/mysql/bin/safe_mysqld &以上只提供参考,对于平台工作人员可以做为了解。二、Mysql基本操作1、MfMf是Mysql的配置文档,里面包括对Mysql的常规参数及不同需求的性能优化调整,这里给出一个示例,可以满足DCBI通常的应用:由于DCBI在20070517及以后的版本中对Mysql的max_connections 要求要大于128,而Mysql默认的 max_connections
5、为100,因此在升级或是新安装时请一定要注意。另:此文件在安装了Mysql的Linux机器的/usr/share/doc/MySQL-server-standard-4.1.14/目录有相关参考文档。2、Mysql常用命令A:Mysql:可以用于登录、导入数据。如:mysql uroot hlocalhost p dcradius,意思是root用户以localhost主机登录到dcradius数据库,-p是使用密码。Mysql dcradius 2007-9-21.sql对备份文件的导入:mysql dcradius 2、查询Mysql中当前的已经存在的数据库:show databasesm
6、ysql show databases;+-+| Database |+-+| dcradius | mysql | test |+-+3 rows in set (0.00 sec)3、打开目标数据库:user dcradius;mysql use dcradius;Database changed4、显示当前数据库里的各个数据表: show tables;mysql show tables;+-+| Tables_in_dcradius |+-+| ACCLIST | ACCSUBJECT | ACLLOG | ALERTINFO | AUTHORIZATIONGROUP |.| WEBR
7、EGINFO |+-+74 rows in set (0.00 sec)5、显示某个数据表的表结构:desc USERACCOUNT;mysql desc USERACCOUNT;+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra+-+-+-+-+-+-+| ACCOUNTID | int(11) | | PRI | NULL | auto_increment | FEETYPEID | int(11) | | | 0 | NEWFEETYPEID | int(11) | | | 0 | ACCOUNTNAME | varcha
8、r(50) | | MUL | | LEFTMONEY | double(8,2) | YES | | 0.00 | NEXTPAYDATE | datetime | YES | MUL | 2099-12-31 00:00:00 | ACCSTAT | tinyint(4) | | MUL | 0 | PREDAYTIME | datetime | YES | | 1900-01-01 00:00:00 | NPREDAY | tinyint(4) | YES | | 0 | ISCHECKQUOTA | tinyint(4) | YES | | 0 | ALLOW_LOCAL | tiny
9、int(4) | YES | | 0 | ISLOCKNEWFEETYPE | tinyint(4) | | | 0 | PROHIBITDATE | datetime | YES | | 1900-01-01 00:00:00 |+-+-+-+-+-+-+13 rows in set (0.00 sec)6、常用数据查询语句:select 查询USERACCOUNT表中所有数据条目mysql select * from USERACCOUNT;查询USERACCOUNT表中所有数据条目,返回前10条数据mysql select * from USERACCOUNT limit 10;查询US
10、ERACCOUNT表中所有数据条目,返回第10条以后的100条数据mysql select * from USERACCOUNT limit 10,100;附加条件的具体查询mysql select * from USERACCOUNT where ACCOUNTID=10;mysql select * from USERACCOUNT where ACCOUNTID=10 and FEETYPEID=2;mysql select * from USERACCOUNT where LEFTMONEY 10;统计USERACCOUNT中所有数据条目mysql select count(*) fr
11、om USERACCOUNT ;模糊查询,查询USERPARAM表中USERNAME字段以“wang”开头的所有用户mysqlselect * from USERPARAM where USERNAME like wang%;mysqlselect * from USERPARAM where USERNAME like wang%;将查询输出到文本:mysqlSELECT . INTO OUTFILE file_name(文件保存在当前数据库目录下)B、数据插入:INSERT格式:insert into tablename (字段A, 字段B, 字段C) values (数值A,数值B,数值
12、C);1、增加admin的登录许可IPmysqlinsert into OPLIMITIP (OPNAME,IPADDRESS) VALUES(admin,0.0.0.0/0);注意、关于INSERT语句,请参考MySQL中文参考手册第7章,在进行数据操作前请先备份数据,在确认无误后再进行相关操作。C、数据更新:UPDATE格式:UPDATE LOW_PRIORITY tbl_name SET col_name1=expr1,col_name2=expr2,. WHERE where_definition LIMIT #UPDATE用新值更新现存表中行的列,SET子句指出哪个列要修改和他们应该
13、被给定的值,WHERE子句,如果给出,指定哪个行应该被更新,否则所有行被更新。 如果你指定关键词LOW_PRIORITY,执行UPDATE被推迟到没有其他客户正在读取表时。 如果你从一个表达式的tbl_name存取列,UPDATE使用列的当前值。例如,下列语句设置age为它的当前值加1: mysql UPDATE persondata SET age=age+1;UPDATE赋值是从左到右计算。例如,下列语句两倍age列,然后加1: mysql UPDATE persondata SET age=age*2, age=age+1;如果你设置列为其它当前有的值,MySQL注意到这点并且不更新它。
14、D、DELECT格式:DELETE LOW_PRIORITY FROM tbl_name WHERE where_definition LIMIT rowsDELETE从tbl_name表中删除满足由where_definition给出的条件的行,并且返回删除记录的个数。 如果你发出一个没有WHERE子句的DELETE,所有行都被删除。MySQL通过创建一个空表来完成,它比删除每行要快。在这种情况下,DELETE返回零作为受影响记录的数目。(MySQL不能返回实际上被删除的行数,因为进行再创建而不是打开数据文件。只要表定义文件“tbl_name.frm”是有效的,表才能这样被再创建,即使数据或
15、索引文件破坏了)。 如果你确实想要知道在你正在删除所有行时究竟有对少记录被删除,并且愿意承受速度上的惩罚,你可以这种形式的一个ELETE语句: mysql DELETE FROM tbl_name WHERE 10;注意这比没有WHERE子句的DELETE FROM tbl_name慢的多了,因为它一次删除一行。 如果你指定关键词LOW_PRIORITY,DELETE的执行被推迟到没有其他客户读取表后。四、Mysql数据库复制 MySql数据库同步复制,该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。主要用于对网络可靠性要求比较高的地方,比如,可以通过在网络中部署两套DCBI_Se
16、rver,当主DCBI_Server出现问题时,自动跳转到从DCBI_Server进行认证,确保网络中用户正常接入。环境描述:系统:Redhat Linux AS3 update8Mysql版本:Mysql4.1.14复制数据库:dcradius服务器两台:分别安装DCBI_Server(版本任意),DCBI_A(主):192.168.1.245/24;DCBI_B(备):192.168.1.246/24DCBI_A上的配置:MysqlGRANT FILE ON *.* TO dcradius192.168.1.246 IDENTIFIED BY digitalchina;修改DCBI_A上的
17、f文件,增加以下内容:server-id=1log-binbinlog-do-db=dcradius通过show master status 可以看到master上的一些信息。DCBI_B上的配置:MysqlGRANT FILE ON *.* TO dcradius192.168.1.245 IDENTIFIED BY digitalchina;修改DCBI_B上的f文件,增加以下内容: server-id=2 master-host=192.168.1.245 master-user=dcradius master-password=digitalchina master-port=3306
18、 master-connect-retry=10 replicate-do-db=dcradius五、DCBI升级脚本制作 DCBI的升级往往会涉及到对数据库结构的修改,比如对数据库字段的修改、添加、删除等,在这里就要求大家对每个版本之间在数据库结构方面的区别要了解清楚,不能遗漏每一个细节。否则,在进行DCBI升级的时候都有可能遇到问题。请大家在制作数据库升级脚本的时候一定要仔细仔细再仔细。另外一个就是一直强调的数据备份!1、所需工具(公司FTP中wangyc/tools/目录有相关工具的下载):文件差异比较工具:推荐Beyond Compare文本编辑工具:推荐EditPlus (可实现文本
19、文档windows和Linux系统之间的转换)现有DCBI版本的db_radius.sql文件和待升级的DCBI版本的db_radius.sql文件。2、操作步骤:A、找到当前DCBI版本的db_radius.sql 和待升级的DCBI版本db_radius.sql文件,这里以20070717 升级到20070901版本为例:B、比较两个文件的差异,然后用Mysql语法把当前库结构修改成待升级版本的数据库结构。关于Beyond Compare的使用,在Beyond Compare的会提示有几处差异、差异的具体位置等,在使用的时候可以多注意这方面的细节。结合以上信息,制作DCBIV3200707
20、17到20070901的升级脚本如下:ALTER TABLE FEETYPE ADD COLUMN ISACCUMULATE tinyint default 0;ALTER TABLE STATION ADD COLUMN FIRSTAUTHCHARGE tinyint NOT NULL default 0;ALTER TABLE USERPARAM ADD COLUMN ISFIRSTAUTH tinyint NOT NULL default 0;ALTER TABLE USERPARAM ADD COLUMN ACCUMULATION_TOTAL double(8,2) NOT NULL
21、default 0;ALTER TABLE USERPARAM ADD COLUMN LASTONLINETIME datetime default 1970-01-01 00:00:00;update OPGROUP set OPPRIVILEGES=111111111111111111111111111111111111111111111111111111111111111111111111111 where OPGROUPNAME=admin;把以上内容保存为一个文本文档0717up0901.sql,通过mysql dcradius 0717up0901.sql升级现有数据库结构。注意:升级过程中会涉及到多个管理员的权限更改的问题,上面的脚本只改了默认管理员admin的相关权限,其它操作员的相关权限也需要修改。关于DCBI的数据库升级方面更详细的可以参考DCBI 数据库升级脚本制作方法-20070802.doc
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1