建立一个预防性维护的时间表,以协助自动检测问题,使得您可以采取措施进行修正: 1) 执行常规的数据库备份并允许更新日志。 2) 安排定期的常规表检查。通过检查表,将减少使用备份的机会。这个工作使用cron 作业(一般从运行服务器所使用的该账号的crontab 文件中调用)并且很容易实现。例如,如果您作为mysqladm 用户运行服务器,则可以从mysqladm 的crontab 文件中建立定期检查。如果您不知道如何使用c r o n,应使用下列命令查看相关的UNIX 人工页: % man cron % man crontab 3) 在服务器启动前的系统引导期间检查数据库表。机器可能会因早期的崩溃重新启动。如果是这样的话,数据库表可能已被毁坏,应该对它进行检查。 为了运行自动的表检查,可以编写一个脚本,将目录改变为服务器数据目录并对所有数据库表运行myisamchk 和i s a m c h k。我们将在下面讨论的脚本中同时使用这两个程序。如果您只有My
.... [阅读全文]
当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装SSH。用它,你能在一个MySQL服务器与一个MySQL客户之间得到一个加密的TCP/IP连接。为了使一个MySQL系统安全,强烈要求你考虑下列建议:对所有MySQL用户使用口令。记住,如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑 mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:shell> mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root'; mysql> FLUSH PRIV
.... [阅读全文]
在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。本人以前也曾遇到过类似问题,经详细阅读 MySQL 的 Manual ,发现可以有一种方法很方便的解决并得到满意的结果。例子:·希望通过“标题”对新闻库进行检索,关键字可能包含是中英文,如 下 SQL 语句:select id,title,name from achech_com.news where title like '%a%'返回的结果,某些 title 字段确定带了“a”关键字,而有些则只有中文,但也随之返回在检索结果中。解决方法,使用 BINARY 属性进行检索,如:select id,title,name from achech_com.news where binary title like '%a%'返回的结果较之前正确,但英文字母区分大小写,故有时在检索如“Achech”及 “achech”的结果是
.... [阅读全文]