名字最长为个字符
然而因为数据库和表的名字对应于目录和文件名服务器运行的操作系统可能强加额外的限制
首先数据库和表名仅限于对文件名合法的字符如$在MySQL的原则中是允许的但是如果你的操作系统不允许则你不能在目录或表名中使用它实际上这对Unix或Windows不是所担心的最大的难度是在执行数据库管理时直接在shell中引用名字例如如果你命名一个数据库如$my_db包含一个美元符任何从shell中对该名字的引用可能被shell解释为对一个变量的引用
%ls $my_db
my_db:undefined variable
对此你必须转义$字符或用引号禁止其特殊含义
%ls \\\\$my_db
%ls $my_db
如果你用引号一定要用单引号而双引号并不禁止变量解释
其次虽然MySQL允许数据库和表名最长到个字符但名字的长度受限于你的操作系统限定的长度一般这不是一个问题(虽然老的System V强制个字符)在这种情况下你数据库名的上限为个字符而表名上限为个字符因为表示表的文件名有一个点()和三个字符的扩展名
第三文件系统的大小写敏感性影响到你如何命名和引用数据库和表名如果文件系统是大小写敏感的(如Unix)两个名字my_tbl和MY_TBL是不同的表如果文件系统不是大小写敏感的(如Windows)这两个名字指的是相同的表如果你用一个Unix服务器开发数据库并且如果你有可能转移到Windows你应该记住这一点
MySQL状态文件
除了数据库目录MySQL数据目录还包含很多状态文件这些文件总结在下表中大多数文件的缺省名从服务器主机名生成在下表中表示为HOSTNAME
[] [] [] [] [] [] [] [] [] []