在《解决Linux Server时间不准确的问题》一文中,使用了crontab定期执行ntpdate来校对时间。之后恰巧某博客上的文章,提出一个观点“时钟的跃变,有时候会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务, 通常会地依赖这样的事实:时间不会往回跳跃。”时间的瞬变,对于crontab等对时间敏感的系统任务,也是很容易造成错乱的。

Read the rest of this entry

,

MySQL在Linux应用环境中,一般都是最重要的业务,定期备份是必须的。一般有如下几种策略:

1.拷贝文件系统 – 停止服务,copy 数据库目录;启动服务
(需要停止服务一段时间,期间不接受写入操作)

2.MySQL自带工具mysqldump,这也是最常用的方式
(能在备份的过程lock tables,一定程度上保证数据的一致性)

3.MySQL自带工具mysqlhotcopy
(文件系统级拷贝工具,能在备份过程lock tables,只对MyISAM表格有效)

4.热备(未跑在生产环境中,等做完发上来)

Read the rest of this entry

,

依赖RHEL的使用习惯,以为直接在/etc/my.cnf修改”dbdir=/var/lib/mysql”即可。事实证明,此经验是行不通的。在Ubuntu Server中,只要按此修改,再启动mysqld’’/etc/init.d/mysql start’’,执行结果一定是failed。

Ubuntu Server采取了Suse的杀手级应用AppArmor,对一些关键业务的读写权限有严格限制。需要改动这些业务,需要在AppArmor模块中加入Allow规则。

Read the rest of this entry

,

1.www目录备份
分别进各个站点的后台,关闭站点,不要再有数据写入。

打包www目录,下载到本机备用。

2.数据库备份

Read the rest of this entry

1. 概述
MySQL数据库的导入,有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。

Read the rest of this entry

查询目前活动的MySQL数据库,清除废弃的数据库(直接在var/lib/mysql中直接删除对应的目录即可)

关闭MySQL Service,备份/var/lib/mysql目录下的活动数据库(用tar打包并存到其他位置)

卸载MySQL 4.1,并清除mysql数据库(清空/var/lib/mysql/mysql)

安装MySQL 5,并启动

利用phpMyAdmin重建所有数据库授权用户

将原有数据迁移回去,即可正常运行

修改了my.cnf,需要重启MySQL服务

由于是从源码包安装的Mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本

Read the rest of this entry

允许客户从远程连接,要保证两个条件:
1. mysql的身份认证信息中要允许客户从远程连接;
2. 防火墙打开mysql的端口(3306)

远程工具管理工具,推荐SQLyog企业版,一直用它,感觉还不错。

一般我们只允许用户从本机连接,不建议允许远程连接,这可能会带来额外的安全问题,以及增加网络流量。

Read the rest of this entry