您的位置:首页 > 数据库 > MySQL

MYSQL初学者使用指南与介绍

2005-04-30 01:10 796 查看
MYSQL初学者使用指南与介绍
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110
.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)

二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令 (password 里面不要加命令符)
mysqladmin -uroot password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345

三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
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 "";
 
 
在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。

一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表结束
//以下为插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
注:在建表中
(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key
(2)将NAME设为长度为10的字符字段
(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。
(4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:/下,并在DOS状态进入目录/mysql/bin,然后键入以下命令:
mysql -uroot -p密码 < c:/school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用/n来代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、数据传入命令 load data local infile "文件名" into table 表名;
注意:你最好将文件复制到/mysql/bin目录下,并且要先用use命令打表所在的库 。
五、备份数据库:(命令在DOS的/mysql/bin目录下执行)
mysqldump --opt school>school.bbb
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
后记:其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。最好的MYSQL教程还是“晏子“译的“MYSQL中文参考手册“不仅免费每个相关网站都有下载,而且它是最权威的。可惜不是象"PHP4中文手册"那样是chm的格式,在查找函数命令的时候不太方便。

 引自: http://blog.csdn.net/onemaster/

阅读全文(1133) | 回复(3) | 引用(0)
回复:学习园地
[align=right]dolphin发表评论于2004-10-9 14:59:14[/align]
MYSQL数据库入门
MySQL简介
什么是MySQL?

MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。SQL语言使得存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询信息。MySQL的快速和灵活性足以满足一个网站的信息管理工作。数据库与用户端之间的接口程序可以使用CGI进行通信。新网ChinaDNS使用的是PHP,使用PHP和MySQL这两样东西加在一起,对于开发数据驱动的网站这项工作而言是最佳组合。PHP是一种用于服务器端执行程序解释的脚本语言。如果你接触过ASP的话,那么您对于在HTML页面中嵌入代码应该是比较熟悉了。PHP代码在服务器一端被解释、执行并转变成普通的HTML页面内容,送给浏览器一端。这种模式使得我们可以用它来完成相当复杂的功能。

为什么用MySQL?
现在每一个人的生活几乎都离不开数据库,如果没有数据库,很多事情都会变得非常棘手,也许根本无法做得到。银行、大学和图书馆就是几个严重依赖数据库系统的地方。在互联网上,使用搜索引擎、在线购物甚至是访问网站地址(http://www...)都离不开数据库。一个数据库通常都安装在称为数据库服务器的计算机上。目前市场上运行最快的 SQL (Structured Query Language结构化查询语言) 数据库之一就是MySQL Server,由瑞典的T.c.X. DataKonsultAB公司开发。MySQL可以从http://www.mysql.com/上下载,它提供了其它数据库少有的编程工具,而且MySQL对于商业和个人用户是免费的。如果想用MySQL开发应用软件,必须支付一定的产品使用许可费用,具体情况可以访问MySQL's licensing section。

MySQL的功能特点如下:
可以同时处理几乎不限数量的用户;
处理多达50,000,000以上的记录;
命令执行速度快,也许是现今最快的;
简单有效的用户特权系统。

MySQL的用户?

MySQL在企业中使用非常广泛,其中知名的公司有:

Silicon Graphics (http://www.sgi.com)

Siemens (http://www.siemens.com)

如果这些还不够,你可以在MySQL用户名单上看到更多。
这篇文章主要是向读者对MySQL服务器的基本操作进行简单的介绍,其中包括怎样建立连接,设置服务器进行简单的命令操作。这里介绍的的命令是一些最重要的,因为它们是构成一些高级命令的基穿
MySQL通常对用户来说是一种额外服务,所以在使用之前,请向新网ChinaDNS申请开设MySQL帐户。

MySQL的环境

MySQL通常用Telnet进行登录(一个非常好的Telnet软件名为Easyterm,可以从 http://www.arachnoid.com/下载)。我们向用户推荐使用WinMysql 管理工具,下载网址是http://www.tcx.se/Downloads/Win32/myAdmin1.0.1.0.zip 通过Telnet与web服务器连接后,第二个命令提供MySQL服务器的登录。登录的步骤如下:

1. 连接到服务器。

--------------------------------------------------------------------------------

login: devshed
Password: ********

Last login: Wed Aug 12 09:49:14 from 195.103.124.222
Copyright 1992, 1993, 1994, 1995, 1996 Berkeley Software Design, Inc.
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

BSDI BSD/OS 2.1 Kernel #12: Mon Feb 23 13:46:27 EST 1998

You have new mail.
www24:mywww/devshed#

--------------------------------------------------------------------------------

2. 登录到MySQL帐户。

--------------------------------------------------------------------------------
www24:mywww/devshed# mysql -u devshed -p
--------------------------------------------------------------------------------

Syntax: mysql -h hostname -u username -p[password]
Or
mysql -h hostname -u username --password=password

用户会被提示输入密码。-p表示输入密码。

--------------------------------------------------------------------------------
Enter password: *******
--------------------------------------------------------------------------------

用户会看见如下结果:

--------------------------------------------------------------------------------
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 49 to server version: 3.21.23-beta-log
Type 'help' for help.

mysql>
--------------------------------------------------------------------------------

登录到数据库之后,我们就可以执行各种MySQL的命令,但在对数据库操作之前必须要先调用数据库,也就是与数据库建立连接:

--------------------------------------------------------------------------------
mysql> use devshed;
--------------------------------------------------------------------------------

结果:

--------------------------------------------------------------------------------
Database changed
Mysql>
--------------------------------------------------------------------------------

现在你已经连接到数据库。注意命令后面要加上分号(;),几乎所有的MySQL命令都要加分号。有关管理数据库的命令可以通过键入help, /h 或?列出来。

--------------------------------------------------------------------------------
mysql> help

help (/h) Display this
text ? (/h) Synonym for `help'
clear (/c) Clear command
connect (/r) Reconnect to the server. Optional arguments are db and host
edit (/e) Edit command with $EDITOR
exit (/) Exit mysql. Same as quit
go (/g) Send command to mysql server
print (/p) print current command
quit (/q) Quit mysql
rehash (/#) Rebuild completion hash
status (/s) Get status information from the server
use (/u) Use another database. Takes database name as argument

Connection id: 49 (Can be used with mysqladmin kill)

mysql>
--------------------------------------------------------------------------------

也许这些功能不会都能用上,但应该知道每一个命令都会做什么。象命令status, use, print, connect, clear, 和quit在最开始学习使用时都会十分有用。现在,你应该对连接数据库、选择数据库和运行基本命令都应该有一定的了解。下一步将讲解有关对数据库进行操作的基本概念和方法。


MySQL基础

数据类型和表
数据库其实不过是由不同层次的数据结构构成的。MySQL中可以存放块(或记录)信息的结构就是表(table)。而这些记录则由更小的信息格式组成,即数据类型。一个或多个的数据类型组成了记录。由记录组成的表构成了数据库的一部分。数据库的层次可以表示如下:
Database < Table < Record < Datatype
数据类型有不同的形式和大小,这样程序员就可以根据实际应用的需要建立表。选择合适的数据类型对于数据库的运行性能影响致关重要,所以详细了解这些概念是十分重要的。

MySQL Datatypes 数据类型

MySQL支持各种数据类型(即使是编程新手也都基本熟悉)。常用的类型包括:

CHAR (M) 固定长度字符

用来表示固定长度的字符串。字符串的长度范围是1-255。例如:car_model CHAR(10);

VARCHAR (M) 可变长度字符
VARCHAR是一个具有灵活性的字符数据类型。字符串的长度范围是1-255。 选用VARCHAR通常是比较明智的决定。尽管处理CHAR类型的数据比VARCHAR类型的数据要快,有时会快50%。(CHAR类型存储的数据的长度是声明变量时的固定长度,而不管数据的实际长度。VARCHAR存储的是按数据的实际长度,从而减小了数据文件的大些) car_model VARCHAR(10);

INT (M) [Unsigned] 整数类型
INT是整数类型,存储整数的值范围是-2147483648到2147483647。在声明类型时可选用"unsigned",这样值的范围就是0到4294967295。
light_years INT;
合法整数: '-24567',非法整数: '3000000000'。
light_years INT unsigned;
合法整数: '3000000000',非法整数: '-24567'。
FLOAT [(M,D)] 浮点类型
FLOAT代表浮点类型,用来表示更精确的数字类型。
rainfall FLOAT (4,2);
这个变量可以用来表示一年当中的平均降水量,并精确到小数。FLOAT (4,2)表示数值一共可以有4位数字,小数点后有2位数字。请看下面哪些数值可以用上面的变量类型表示:
42.35是合法的
324.45是不合法的,将被修改为324.5
2.2 是合法的数值
34.542 不合法,将被修改为 34.54
注意:由于FLOAT会将数值四舍五入,所以如果不想让数值随意被更改,建议使用DECIMAL。

DATE 日期类型
用来存放日期信息,缺省的格式是'YYYY-MM-DD',日期范围可以从'0000-00-00' 到 '9999-12-31'。声明日期型变量the_date:the_date DATE;

TEXT / BLOB 文本和大对象
如果字符串的长度超过了255,或者要将一篇文章保存到数据库中,CHAR和VARCHAR就无法使用了,这里就要用到TEXT和BLOB类型,该类型可以保存的字符串长度在255 - 65535字节内。BLOB是一个能保存二进制数据的的大对象。BLOB和TEXT数据类型是一样的,唯一的区别就是TEXT不区分大小写,而BLOB区分大小写。

SET 固定类型
一个SET是可以有零或多个值的一个字符串对象,其每一个必须从表创建造被指定了的允许值的一张列表中被选择。由多个集合成员组成的SET列通过由由逗号分隔(“,”)的成员被指定。SET类型最多可以64个值。
transport SET ("truck", "wagon") NOT NULL;
经过上面的声明之后,transport可以有下面几个值:
""
"truck"
"wagon"
"truck,wagon"

ENUM 枚举类型
ENUM是与SET属性相同的数据类型,但从中取值时只能取一个值。
transport ENUM ("truck", "wagon") NOT NULL;
经过上面的声明之后,transport可以有下面几个值:
""
"truck"
"wagon"
Records 记录
一组数据类型就构成了记录。一个记录可以只有一个数据类型,也可以根据需要设置很多个。一个或多个记录构成了一个表。
Tables 表
在我们可以对数据库进行操作之前,必须建立一个可以存放数据的表。可以通过如下方法创建:
mysql> CREATE TABLE test (
> name VARCHAR (15),
> email VARCHAR (25),
> phone_number INT,
> ID INT NOT NULL AUTO_INCREMENT,
> PRIMARY KEY (ID));
输出结果:
Query OK, 0 rows affected (0.10 sec)
mysql>
这样你的第一个表就建成了。
所有的数据类型都可以使用下面的选项:
· 主键值Primary Key。主键值是用来将记录区分开来,因为没有两个记录能使用同一个主键值。在必须要保持记录的唯一性时,使用主键值是非常有用的。
· Auto_Increment自动增量。使用了这个选项的列在每增加一个记录时,都会自动将记录在该列的值加1。
· NOT NULL非空变量。表示该列不能被分配为空值。
例:
soc_sec_number INT PRIMARY KEY;
这样soc_sec_number字段就不能有重复的值。
ID_NUMBER INT AUTO_INCREMENT;
从1开始,自动按顺序将后面的值在前面的基础上增加1。

与表相关的命令

我们可以使用一些与表有关的命令:

显示表内容

如果想显示数据库当中存在的所有表,可以使用命令show tables,mysql> show tables;

显示列
mysql> show columns from test;
结果:
显示出与表相关的列及数据。
现在你已经对创建表有了一个基本的认识。表是由数据类型构成的,所有的数据类型形成了记录。

个人主页 | 引用 | 返回
回复:学习园地
[align=right]dolphin发表评论于2004-10-9 15:00:37[/align]
[align=center]MySQL入门学习(一) [/align][align=left] [/align]安装篇

  PHP+MySQL+Linux目前已逐渐成为小型web服务器的一种经典组合。在indows环境下构筑和调试MySQL数据库是许多网站开发者的一种首选。本人在Windows98环境下初学MySQL,现将学习过程与经验总结出来供大家参考。

1、下载mysql-3.23.35-win.zip并解压;

2、运行setup.exe;选择d:/mysql,"tyical install"

3、启动mysql,有如下方法:

  方法一:使用winmysqladmin    
  1)、进入d::/mysql/bin目录,运行winmysqladmin.exe,在屏幕右下角的任务栏内会有一个带红色的图符
  2)、鼠标左键点击该图符,选择“show me”,出现“WinMySQLAdmin”操作界面;首次运行时会中间会出现一个对话框要求输入并设置你的用户名和口令
  3)、选择“My.INI setup”
  4)、在“mysqld file”中选择“mysqld-opt”(win9x)或“mysqld-nt”(winNT)
  5)、选择“Pick-up or Edit my.ini values”可以在右边窗口内对你的my.ini文件进行编辑
  6)、选择“Save Modification”保存你的my.ini文件
  7)、如果你想快速使用winmysqladmin(开机时自动运行),选择“Create ShortCut on Start Menu”
  8)、测试:
    进入DOS界面;
    在d:/mysql/bin目录下运行mysql,进入mysql交互操作界面
    输入show databases并回车,屏幕显示出当前已有的两个数据库mysql和test
    
  方法二:不使用winmysqladmin
  1)、在DOS窗口下,进入d:/mysql/bin目录
  2)、win9X下)运行:
     mysqld
    在NT下运行:
     mysqld-nt --standalone
  3)、此后,mysql在后台运行
  4)、测试mysql:(在d:/mysql/bin目录下)
    a)、mysqlshow
      正常时显示已有的两个数据库mysql和test

fe83
    b)、mysqlshow -u root mysql
      正常时显示数据库mysql里的五个表:
       columns_priv
       db
       host
       tables_priv
       user
    c)、mysqladmin version status proc
      显示版本号、状态、进程信息等
    d)、mysql test
    进入mysql操作界面,当前数据库为test
  5)、mysql关闭方法:
    mysqladmin -u root shutdown

4、至此,MySQL已成功安装,接着可以熟悉MySQL的常用命令并创建自己的数据库了

●mysql常见的一些有用的选项和命令
mysqld -----开启日志支持
--log  
--log-update
--log-long-formart
●mysql
grant all on database.* to user identified by "password" 新建一user用户,赋予其database数据库的所有权限
revoke all on database from user 移除user用户在database数据库上的所有权限
mysql -uroot -p --one-database databasename < file.sql 从file.sql文件导入sql语句到databasename这个数据库里
●mysqladmin
mysqladmin flush-logs 命令mysqld重新打开一个新的日志文件,就是清空老日志文件,相当于轮回了
●mysqldump  
--add-drop-table 导出sql语句时添加droptable if exists语句
--quick 快速导出
--opt  优化选项(推荐)
●myisamchk
检查表选项
--extend-check 扩展检查
--medium-check 速度比较折中的一个检查选项
修复表选项
--recover 修复表文件
--safe-recover 安全修复表文件,比--recover要慢
修饰修复表项
--force 强制清除上次的临时文件
--quick 只根据素引文件的内容进行修复
●mysql的管理
可以使用phpmyadmin(需要php的环境支持)和mysqlcc(linux图形界面支持,WINDOWS系统支持) 



个人主页 | 引用 | 返回
回复:学习园地--MYSQL初学者使用指南与介绍(转贴)
[align=right]dolphin发表评论于2004-10-9 15:10:29[/align]
mysql出错代码及出错信息对照
 
mysql出错代码及出错信息对照
--------------------------------------------------------------------------------
 
mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处,请大家指正。
1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
1024:读文件错误
1025:更改名字时发生错误
1026:写文件错误
1032:记录不存在
1036:数据表是只读的,不能对它进行修改
1037:系统内存不足,请重启数据库或重启服务器
1038:用于排序的内存不足,请增大排序缓冲区
1040:已到达数据库的最大连接数,请加大数据库可用连接数
1041:系统内存不足
1042:无效的主机名
1043:无效连接
1044:当前用户没有访问数据库的权限
1045:不能连接数据库,用户名或密码错误
1048:字段不能为空
1049:数据库不存在
1050:数据表已存在
1051:数据表不存在
1054:字段不存在
1065:无效的SQL语句,SQL语句为空
1081:不能建立Socket连接
1114:数据表已满,不能容纳任何记录
1116:打开的数据表太多
1129:数据库出现异常,请重启数据库
1130:连接数据库失败,没有连接数据库的权限
1133:数据库用户不存在
1141:当前用户无权访问数据库
1142:当前用户无权访问数据表
1143:当前用户无权访问数据表中的字段
1146:数据表不存在
1147:未定义用户对数据表的访问权限
1149:SQL语句语法错误
1158:网络错误,出现读错误,请检查网络连接状况
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:字段值重复,入库失败
1169:字段值重复,更新记录失败
1177:打开数据表失败
1180:提交事务失败
1181:回滚事务失败
1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205:加锁超时
1211:当前用户没有创建用户的权限
1216:外键约束检查失败,更新子表记录失败
1217:外键约束检查失败,删除或修改主表记录失败
1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227:权限不足,您无权进行此操作
1235:MySQL版本过低,不具有本功能
附带一个java类,可以把mysql的出错代码翻译成对应的出错信息。
import java.util.*;
public class MyErrorContext
{
    public static class MyError
    {
        int errno;
        String szErrorDesc;
        public MyError(int errno, String errorDesc)
        {
            this.errno = errno;
            this.szErrorDesc = errorDesc;
        }
        public int getErrorNo()
        {
            return errno;
        }
        public String getErrorDesc()
        {
            return szErrorDesc;
        }
    }
    public static final int DB_ER_CANT_CREATE_TABLE = 1005;   //创建表失败
    public static final int DB_ER_CANT_CREATE_DB = 1006;   //创建数据库失败
    public static final int DB_ER_DB_CREATE_EXISTS = 1007;   //数据库已存在,创建数据库失败
    public static final int DB_ER_DB_DROP_EXISTS = 1008;   //数据库不存在,删除数据库失败
    public static final int DB_ER_DB_DROP_DELETE = 1009;   //不能删除数据库文件导致删除数据库失败
    public static final int DB_ER_DB_DROP_RMDIR = 1010;   //不能删除数据目录导致删除数据库失败
    public static final int DB_ER_CANT_DELETE_FILE = 1011;   //删除数据库文件失败
    public static final int DB_ER_CANT_FIND_SYSTEM_REC = 1012;   //不能读取系统表中的记录
    public static final int DB_ER_CHECKREAD = 1020;   //记录已被其他用户修改
    public static final int DB_ER_DISK_FULL = 1021;   //硬盘剩余空间不足,请加大硬盘可用空间
    public static final int DB_ER_DUP_KEY = 1022;   //关键字重复,更改记录失败
    public static final int DB_ER_ERROR_ON_CLOSE = 1023;   //关闭时发生错误
    public static final int DB_ER_ERROR_ON_READ = 1024;   //读文件错误
    public static final int DB_ER_ERROR_ON_RENAME = 1025;   //更改名字时发生错误
    public static final int DB_ER_ERROR_ON_WRITE = 1026;   //写文件错误
    public static final int DB_ER_KEY_NOT_FOUND = 1032;   //记录不存在
    public static final int DB_ER_OPEN_AS_READONLY = 1036;   //数据表是只读的,不能对它进行修改
    public static final int DB_ER_OUTOFMEMORY = 1037;   //系统内存不足,请重启数据库或重启服务器
    public static final int DB_ER_OUT_OF_SORTMEMORY = 1038;   //用于排序的内存不足,请增大排序缓冲区
    public static final int DB_ER_CON_COUNT_ERROR = 1040;   //已到达数据库的最大连接数,请加大数据库可用连接数
    public static final int DB_ER_OUT_OF_RESOURCES = 1041;   //系统内存不足
    public static final int DB_ER_BAD_HOST_ERROR = 1042;   //无效的主机名
    public static final int DB_ER_HANDSHAKE_ERROR = 1043;   //无效连接
    public static final int DB_ER_DBACCESS_DENIED_ERROR = 1044;   //当前用户没有访问数据库的权限
    public static final int DB_ER_ACCESS_DENIED_ERROR = 1045;   //不能连接数据库,用户名或密码错误
    public static final int DB_ER_BAD_NULL_ERROR = 1048;   //字段不能为空
    public static final int DB_ER_BAD_DB_ERROR = 1049;   //数据库不存在
    public static final int DB_ER_TABLE_EXISTS_ERROR = 1050;   //数据表已存在
    public static final int DB_ER_BAD_TABLE_ERROR = 1051;   //数据表不存在
    public static final int DB_ER_BAD_FIELD_ERROR = 1054;   //字段不存在
    public static final int DB_ER_EMPTY_QUERY = 1065;   //无效的SQL语句,SQL语句为空
    public static final int DB_ER_IPSOCK_ERROR = 1081;   //不能建立Socket连接
    public static final int DB_ER_RECORD_FILE_FULL = 1114;   //数据表已满,不能容纳任何记录
    public static final int DB_ER_TOO_MANY_TABLES = 1116;   //打开的数据表太多
    public static final int DB_ER_HOST_IS_BLOCKED = 1129;   //数据库出现异常,请重启数据库
    public static final int DB_ER_HOST_NOT_PRIVILEGED = 1130;   //连接数据库失败,没有连接数据库的权限
    public static final int DB_ER_PASSWORD_NO_MATCH = 1133;   //数据库用户不存在
    public static final int DB_ER_NONEXISTING_GRANT = 1141;   //当前用户无权访问数据库
    public static final int DB_ER_TABLEACCESS_DENIED_ERROR = 1142;   //当前用户无权访问数据表
    public static final int DB_ER_COLUMNACCESS_DENIED_ERROR = 1143;   //当前用户无权访问数据表中的字段
    public static final int DB_ER_NO_SUCH_TABLE = 1146;   //数据表不存在
    public static final int DB_ER_NONEXISTING_TABLE_GRANT = 1147;   //未定义用户对数据表的访问权限
    public static final int DB_ER_SYNTAX_ERROR = 1149;   //SQL语句语法错误
    public static final int DB_ER_NET_READ_ERROR = 1158;   //网络错误,出现读错误,请检查网络连接状况
    public static final int DB_ER_NET_READ_INTERRUPTED = 1159;   //网络错误,读超时,请检查网络连接状况
    public static final int DB_ER_NET_ERROR_ON_WRITE = 1160;   //网络错误,出现写错误,请检查网络连接状况
    public static final int DB_ER_NET_WRITE_INTERRUPTED = 1161;   //网络错误,写超时,请检查网络连接状况
    public static final int DB_ER_DUP_ENTRY = 1062;       //字段值重复,入库失败
    public static final int DB_ER_DUP_UNIQUE = 1169;   //字段值重复,更新记录失败
    public static final int DB_ER_CHECK_NO_SUCH_TABLE = 1177;   //打开数据表失败
    public static final int DB_ER_ERROR_DURING_COMMIT = 1180;   //提交事务失败
    public static final int DB_ER_ERROR_DURING_ROLLBACK = 1181;   //回滚事务失败
    public static final int DB_ER_TOO_MANY_USER_CONNECTIONS = 1203;   //当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
    public static final int DB_ER_LOCK_WAIT_TIMEOUT = 1205;   //加锁超时
    public static final int DB_ER_NO_PERMISSION_TO_CREATE_USER = 1211;   //当前用户没有创建用户的权限
    public static final int DB_ER_NO_REFERENCED_ROW = 1216;   //外键约束检查失败,更新子表记录失败
    public static final int DB_ER_ROW_IS_REFERENCED = 1217;   //外键约束检查失败,删除或修改主表记录失败
    public static final int DB_ER_USER_LIMIT_REACHED = 1226;   //当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
    public static final int DB_ER_SPECIFIC_ACCESS_DENIED_ERROR = 1227;   //权限不足,您无权进行此操作
    public static final int DB_ER_NOT_SUPPORTED_YET = 1235;   //MySQL版本过低,不具有本功能
    private static final MyError[] errormap =
    {
        new MyError(DB_ER_CANT_CREATE_TABLE ,"创建表失败"),
        new MyError(DB_ER_CANT_CREATE_DB  ,"创建数据库失败"),
        new MyError(DB_ER_DB_CREATE_EXISTS  ,"数据库已存在,创建数据库失败"),
        new MyError(DB_ER_DB_DROP_EXISTS  ,"数据库不存在,删除数据库失败"),
        new MyError(DB_ER_DB_DROP_DELETE  ,"不能删除数据库文件导致删除数据库失败"),
        new MyError(DB_ER_DB_DROP_RMDIR  ,"不能删除数据目录导致删除数据库失败"),
        new MyError(DB_ER_CANT_DELETE_FILE  ,"删除数据库文件失败"),
        new MyError(DB_ER_CANT_FIND_SYSTEM_REC  ,"不能读取系统表中的记录"),
        new MyError(DB_ER_CHECKREAD  ,"记录已被其他用户修改"),
        new MyError(DB_ER_DISK_FULL  ,"硬盘剩余空间不足,请加大硬盘可用空间"),
        new MyError(DB_ER_DUP_KEY   ,"关键字重复,更改记录失败"),
        new MyError(DB_ER_ERROR_ON_CLOSE  ,"关闭时发生错误"),
        new MyError(DB_ER_ERROR_ON_READ  ,"读文件错误"),
        new MyError(DB_ER_ERROR_ON_RENAME  ,"更改名字时发生错误"),
        new MyError(DB_ER_ERROR_ON_WRITE  ,"写文件错误"),
        new MyError(DB_ER_KEY_NOT_FOUND  ,"记录不存在"),
        new MyError(DB_ER_OPEN_AS_READONLY  ,"数据表是只读的,不能对它进行修改"),
        new MyError(DB_ER_OUTOFMEMORY  ,"系统内存不足,请重启数据库或重启服务器"),
        new MyError(DB_ER_OUT_OF_SORTMEMORY  ,"用于排序的内存不足,请增大排序缓冲区"),
        new MyError(DB_ER_CON_COUNT_ERROR  ,"已到达数据库的最大连接数,请加大数据库可用连接数"),
        new MyError(DB_ER_OUT_OF_RESOURCES  ,"系统内存不足"),
        new MyError(DB_ER_BAD_HOST_ERROR  ,"无效的主机名"),
        new MyError(DB_ER_HANDSHAKE_ERROR  ,"无效连接"),
        new MyError(DB_ER_DBACCESS_DENIED_ERROR  ,"当前用户没有访问数据库的权限"),
        new MyError(DB_ER_ACCESS_DENIED_ERROR  ,"不能连接数据库,用户名或密码错误"),
        new MyError(DB_ER_BAD_NULL_ERROR  ,"字段不能为空"),
        new MyError(DB_ER_BAD_DB_ERROR  ,"数据库不存在"),
        new MyError(DB_ER_TABLE_EXISTS_ERROR  ,"数据表已存在"),
        new MyError(DB_ER_BAD_TABLE_ERROR  ,"数据表不存在"),
        new MyError(DB_ER_BAD_FIELD_ERROR  ,"字段不存在"),
        new MyError(DB_ER_EMPTY_QUERY  ,"无效的SQL语句,SQL语句为空"),
        new MyError(DB_ER_IPSOCK_ERROR  ,"不能建立Socket连接"),
        new MyError(DB_ER_RECORD_FILE_FULL  ,"数据表已满,不能容纳任何记录"),
        new MyError(DB_ER_TOO_MANY_TABLES  ,"打开的数据表太多"),
        new MyError(DB_ER_HOST_IS_BLOCKED  ,"数据库出现异常,请重启数据库"),
        new MyError(DB_ER_HOST_NOT_PRIVILEGED  ,"连接数据库失败,没有连接数据库的权限"),
        new MyError(DB_ER_PASSWORD_NO_MATCH  ,"数据库用户不存在"),
        new MyError(DB_ER_NONEXISTING_GRANT  ,"当前用户无权访问数据库"),
        new MyError(DB_ER_TABLEACCESS_DENIED_ERROR  ,"当前用户无权访问数据表"),
        new MyError(DB_ER_COLUMNACCESS_DENIED_ERROR  ,"当前用户无权访问数据表中的字段"),
        new MyError(DB_ER_NO_SUCH_TABLE  ,"数据表不存在"),
        new MyError(DB_ER_NONEXISTING_TABLE_GRANT  ,"未定义用户对数据表的访问权限"),
        new MyError(DB_ER_SYNTAX_ERROR  ,"SQL语句语法错误"),
        new MyError(DB_ER_NET_READ_ERROR  ,"网络错误,出现读错误,请检查网络连接状况"),
        new MyError(DB_ER_NET_READ_INTERRUPTED  ,"网络错误,读超时,请检查网络连接状况"),
        new MyError(DB_ER_NET_ERROR_ON_WRITE  ,"网络错误,出现写错误,请检查网络连接状况"),
        new MyError(DB_ER_NET_WRITE_INTERRUPTED  ,"网络错误,写超时,请检查网络连接状况"),
        new MyError(DB_ER_DUP_ENTRY             ,"字段值重复,入库失败"),
        new MyError(DB_ER_DUP_UNIQUE         ,"字段值重复,更新记录失败"),
        new MyError(DB_ER_CHECK_NO_SUCH_TABLE  ,"打开数据表失败"),
        new MyError(DB_ER_ERROR_DURING_COMMIT  ,"提交事务失败"),
        new MyError(DB_ER_ERROR_DURING_ROLLBACK  ,"回滚事务失败"),
        new MyError(DB_ER_TOO_MANY_USER_CONNECTIONS  ,"当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库"),
        new MyError(DB_ER_LOCK_WAIT_TIMEOUT  ,"加锁超时"),
        new MyError(DB_ER_NO_PERMISSION_TO_CREATE_USER  ,"当前用户没有创建用户的权限"),
        new MyError(DB_ER_NO_REFERENCED_ROW  ,"外键约束检查失败,更新子表记录失败"),
        new MyError(DB_ER_ROW_IS_REFERENCED  ,"外键约束检查失败,删除或修改主表记录失败"),
        new MyError(DB_ER_USER_LIMIT_REACHED  ,"当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器"),
        new MyError(DB_ER_SPECIFIC_ACCESS_DENIED_ERROR  ,"权限不足,您无权进行此操作"),
        new MyError(DB_ER_NOT_SUPPORTED_YET  ,"MySQL版本过低,不具有本功能"),
    };
    public static String getErrorInfo(int errno)
    {
        for(int i=0; i<errormap.length; i++)
        {
            if(errno == errormap[i].getErrorNo())
            {
                return errormap[i].getErrorDesc();
            }
        }
        return "";
    }
    public static void main(String[] args)
    {
        for(int i=0; i<errormap.length; i++)
        {
            System.out.println(errormap[i].getErrorNo() + ":" + errormap[i].getErrorDesc());
        }
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息