MSSQL编程:InnoDB 中文参考手册 --- 3 创建一个 I...
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。参考|参考手册|数据|数据库|中文InnoDB中文参考手册---犬犬(心帆)翻译3创建一个InnoDB数据库假定你已安装了MySQL而且已修正了my.cnf包括了需要的InnoDB参数设置。在启动MySQL之前必需反省为InnoDB指定的数据与日记文件路径是不是存在和在这些目次上有充足的权限。InnoDB不会本人创建目次,只能创建文件。同时反省是不是有充足的磁盘空间寄存数据与日记文件。
当创立一个InnoDB数据库时最好以命令行体例来运转MySQL服务mysqld,而不是从safe_mysqld或Windows服务。当从命令行体例运转服务时能够看到创建历程。
如今运转MySQL服务,InnoDB将创建数据文件和日记文件。InnoDB将显现以下所示的信息:
heikki@donna:~/mysql-3.23.48/sql>mysqld02020423:17:12InnoDB:Thefirstspecifieddatafile/dr2/tmp/heikki/data/ibdata1didnotexist:InnoDB:anewdatabasetobecreated!InnoDB:Settingfile/dr2/tmp/heikki/data/ibdata1sizeto20MBInnoDB:Databasephysicallywritesthefilefull:wait...02020423:17:16InnoDB:Datafile/dr2/tmp/heikki/data/ibdata2didnotexist:newtobecreatedInnoDB:Settingfile/dr2/tmp/heikki/data/ibdata2sizeto200MBInnoDB:Databasephysicallywritesthefilefull:wait...02020423:17:41InnoDB:Datafile/dr2/tmp/heikki/data/ibdata3didnotexist:newtobecreatedInnoDB:Settingfile/dr2/tmp/heikki/data/ibdata3sizeto1000MBInnoDB:Databasephysicallywritesthefilefull:wait...02020423:21:37InnoDB:Logfile./ib_logfile0didnotexist:newtobecreatedInnoDB:Settinglogfile./ib_logfile0sizeto10MBInnoDB:Databasephysicallywritesthefilefull:wait...02020423:21:39InnoDB:Logfile./ib_logfile1didnotexist:newtobecreatedInnoDB:Settinglogfile./ib_logfile1sizeto10MBInnoDB:Databasephysicallywritesthefilefull:wait...02020423:21:41InnoDB:Logfile./ib_logfile2didnotexist:newtobecreatedInnoDB:Settinglogfile./ib_logfile2sizeto10MBInnoDB:Databasephysicallywritesthefilefull:wait...InnoDB:Doublewritebuffernotfound:creatingnewInnoDB:DoublewritebuffercreatedInnoDB:CreatingforeignkeyconstraintsystemtablesInnoDB:Foreignkeyconstraintsystemtablescreated02020423:21:45InnoDB:Startedmysqld:readyforconnections
如今一个新的InnoDB数据库被创建了。你能够经由过程MySQL的客户端程序(好比mysql)毗连MySQL服务器。当经由过程mysqladminshutdown封闭MySQL服务时,InnoDB输入以下所示:
02020423:34:45mysqld:Normalshutdown02020423:34:45InnoDB:Startingshutdown...02020423:34:47InnoDB:Shutdowncompleted02020423:34:47mysqld:ShutdownComplete
如今你能够看到数据文件与日记文件已被创建。在日记文件目次下也会包括一个句为ib_arch_log_0000000000的小文件。这是当InnoDB的日记存档(logarchiving)开关封闭后,数据库创建后构成的文件。当MySQL再次启动时,屏幕显现所下所示:
heikki@donna:~/mysql-3.23.48/sql>mysqld02020423:34:27InnoDB:Startedmysqld:readyforconnections
3.1在创建数据库时大概产生的几个毛病
假如InnoDB显现一个文件操纵的操纵体系毛病,请检察第13.2节毛病代码的寄义。罕见的毛病以下:没有创立InnoDB数据或日记文件目次。mysqld在那些目次下没有创建文件的权限。mysqld没有权限读取my.cnf或my.ini文件,因此没法设置所指定的选项。磁盘空间已满或凌驾磁盘配额。创建了一个与数据文件同名的子目次。innodb_data_home_dir或innodb_data_file_path中设置语法堕落。
假如在InnoDB数据库创立时产生了一个毛病,你必需删除一切InnoDB创立的文件。这就意味着一切的数据文件、一切的日记文件、日记存档文件,假如你已创建了一些InnoDB表,必需删除MySQL数据目次下响应的“.frm”文件。然后能够再实验创建InnoDB数据库。最好以命令行体例启动MySQL服务,从而能够看到创建历程。
3.2封闭MySQL服务
一般在封闭盘算机之前你必需先封闭数据库服务。在命令行体例下输出mysqladminshutdown能够以服务。
在WindowsNT和2000下能够将MySQL服务安装为Windows体系服务。如许在盘算机启动时MySQL服务会主动启动或在命令行体例下输出MS-DOS命令NETSTARTMySQL或从操纵体系的服务菜单中启动。
假如以体系服务体例运转MySQL,能够经由过程MS-DOS的NETSTOPMySQL命令或操纵体系的服务菜单中封闭服务。你一样可让操纵体系加入前主动封闭MySQL。在低于MySQL3.23.47版本的体系中,Windows操纵体系仅仅只守候一段工夫让InnoDB完整封闭,假如限止工夫凌驾将杀逝世数据服务线程。那鄙人一次InnoDB启动不能不不举行一个溃散修复。从MySQLversion3.23.48入手下手,操纵体系将守候InnoDB完整封闭。
假如你的操纵体系没无为InnoDB完整封闭供应充足的工夫,最平安的举措就是在MS-DOS命令行下运转MySQL服务,并用mysqladminshutdown封闭服务。
在WindowsNT(但Windows2000无些成绩)下,当盘算构造闭时,有一个大概产生的成绩就是WindowsNT默许守候20秒以封闭一个服务,服务未能封闭将杀逝世服务线程。能够经由过程运转注册表编纂器winntystem32egedt32.exe来修正HKEY_LOCAL_MACHINEYSTEMCurrentControlSetControl中的WaitToKillServiceTimeout键值以增添这个默许值。以毫秒为单元给定一个更年夜的值。
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。 另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程); sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 代替了原来VB式的错误判断。比Oracle高级不少。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
页:
[1]