18.10 文件许可权限问题
如果你有与文件许可有关的问题,例如,如果当你创建一张表时,mysql发出下列错误消息:
ERROR: Can’t find file: ’path/with/filename.frm’ (Errcode: 13)
那么可能是在mysqld启动时,环境变量UMASK可能设置不正确。缺省的umask值是0660。你可以如下启动safe_mysqld改变其行为:
shell> UMASK=384 # = 600 in octal
shell> export UMASK
shell> /path/to/safe_mysqld &
18.11 文件没找到
如果你从MySQL得到ERROR ’...’ not found (errno: 23), Can’t open file: ... (errno: 24)或任何其他有errno 23或errno 24的错误,它意味着,你没有为MySQL分配足够的文件描述符。你能使用perror实用程序得到错误号含义是什么的描述:
shell> perror 23
File table overflow
shell> perror 24
Too many open files
这里的问题是mysqld正在试图同时保持打开太多的文件。你也可以告诉mysqld一次不打开那么多的文件,或增加mysqld可得到的文件描述符数量。为了告诉mysqld一次保持打开更少的文件,你可以通过使用safe_mysqld的-O table_cache=32选项(缺省值是64)使表缓冲更小。减小max_connections值也将减少打开文件的数量(缺省值是90)。
要想改变mysqld可用的文件描述符数量,修改safe_mysqld脚本。脚本中有一条注释了的行ulimit -n 256。你可以删除’#’字符来去掉该行的注释,并且改变数字256改变为mysqld可用的文件描述符的数量。
ulimit能增加文件描述符的数量,但是只能到操作系统强加的限制。如果你需要增加每个进程可用的文件描述符数量的OS限制,参见你的操作系统文档。注意,如果你运行tcsh外壳,ulimit将不工作!当你请求当前限制时,tcsh也将报告不正确的值!在这种情况下,你应该用sh启动safe_mysqld!
18.12 使用DATE列的问题
一个DATE值的格式是’YYYY-MM-DD’。根据ANSI SQL,不允许其他格式。你应该在UPDATE表达式和SELECT语句的WHERE子句中使用这个格式。例如:
mysql> SELECT * FROM tbl_name WHERE date >= ’1997-05-05’;
为了方便,如果日期用在数字上下文,MySQL自动变换一个日期到一个数字(并且反过来也如此)。当更新时和将一个日期与TIMESTAMP、DATE或DATETIME列比较的一个WHERE子句中,也是足够灵活以允许一种“宽松”的字符串格式。(宽松格式意味着任何标点字符用作在部件之间的分割符。例如,’1998-08-15’和’1998#08#15’是等价的。)MySQL也能变换不包含分割符的一个字符串(例如 ’19980815’),如果它作为一个日期说得通。特殊日期’0000-00-00’可以作为’0000-00-00’被存储和检索。当通过MyODBC使用一个’0000-00-00’日期时,在MyODBC 2.50.12和以上版本,它将自动被转换为NULL,因为ODBC不能处理这种日期。
因为MySQL实行了上述的变换,下列语句可以工作:
mysql> INSERT INTO tbl_name (idate) VALUES (19970505);
mysql> INSERT INTO tbl_name (idate) VALUES (’19970505’);
mysql> INSERT INTO tbl_name (idate) VALUES (’97-05-05’);
mysql> INSERT INTO tbl_name (idate) VALUES (’1997.05.05’);
mysql> INSERT INTO tbl_name (idate) VALUES (’1997 05 05’);
mysql> INSERT INTO tbl_name (idate) VALUES (’0000-00-00’);
mysql> SELECT idate FROM tbl_name WHERE idate >= ’1997-05-05’;
mysql> SELECT idate FROM tbl_name WHERE idate >= 19970505;
mysql> SELECT mod(idate,100) FROM tbl_name WHERE idate >= 19970505;
mysql> SELECT idate FROM tbl_name WHERE idate >= ’19970505’;
然而,下列将不工作:
mysql> SELECT idate FROM tbl_name WHERE STRCMP(idate,’19970505’)=0;
STRCMP()是字符串函数,因此它将idate转换为一个字符串并且实施字符串比较。它不将’19970505’转换为一个日期并实施日期比较。
注意,MySQL不检查日期是否正确。如果你存储一个不正确的日期,例如’1998-2-31’,错误的日期将被存储。如果日期不能被变换到任何合理的值,在DATE字段中存储一个0。这主要是一个速度问题并且
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
热 门 新 闻![]() 丰俭由君,AMD发烧友不 | ![]() 爱国者录音笔全国掀促销 |
| · | 丰俭由君,AMD发烧友不可错过 |
| · | 爱国者录音笔全国掀促销攻势 初战告捷 |
| · | 液显排排站“绝色”“赢家”“黑钻”逐个挑 |
| · | 领航者! 微星NX8500GT-TD512E驾到! |
| · | 巅峰对决 6款神舟3999元双核本推荐 |
| · | 视觉计算世界齐聚NVISION 08 |
最 新 本 地 信 息![]() 南充电脑城漫游记3-30[ | ![]() 内存中的战斗机 金邦黑 |
| · | 南充电脑城漫游记3-30[第八期] |
| · | 内存中的战斗机 金邦黑龙EVO游戏内存 |
| · | 性价比超群 双敏火旋风HD3650玩家版仅售59 |
| · | 再降100元 双敏火旋风HD3690玩家版降至799 |
| · | 南充电脑城漫游记3-23[第七期] |
| · | 轻薄圆润迅驰4 戴尔Inspiron1525仅售5999元 |
ZOLNC 推 荐 经 销 商![]() 就要非入耳 抛弃入耳式耳塞的4大理由 | ![]() 玩爽HTPC 近期公认超值5.1音箱大搜罗 |
![]() 超值数码:行货T61欲破万元 理光DC齐降价 | ![]() 个性解放 时尚另类设计电脑哪款更好 |
![]() 海量存储 联想天逸F41顶配本杀破万元 | ![]() 双核D刻120GB硬盘本 宏碁4520售4699元 |
| · | 阻止我的IE强行弹出广告 | · | 教你Word操作中一些很少 |
| · | Kmplayer简体中文版+ex | · | 买火车票很简单 四招搞 |
| · | 简单三招——远程共享你 | · | 新手进阶 处理Excel表格 |
| · | 酷6网率先启动了“原创 | · | 谷歌提供离线文档编辑功 |
| · | 百度渗透WiMax领域 打造 | · | 消息称谷歌将裁减15% D |
| · | 传谷歌有意收购美国最大 | · | 百度联盟角色升级 变身 |
| · | Moki小猴登场 三星YP-T | · | 死磕日系!康佳旗舰液晶 |
| · | 绝色外观!海信TLM46V69 | · | [论坛]我和长虹PT50600 |
| · | [论坛]首发!夏普32BK7 | · | 液晶面板过剩 成4月价格 |
| · | 直播RMVB电影 蓝慧真宽 | · | 滑动触摸按键 纽曼MOMO |
| · | 画质取胜入门首选 5倍光 | · | 中频表现突出! 现代HY- |
| · | 主流攀上1066 宏连新款 | · | 1460万像素 三星GX-20单 |
|