作为系统管理员,经常会碰到这样一个场景:刚接手应用系统不久,业务扩展迅速,老板要求你再搭建N个应用环境,并希望尽量与运行中的平台一致。
犯难的是,前同事留下的文档不详细,没有关于几个主要Service的编译参数。这时你就必须设法取得信息。

1.通过软件包自己的version参数或者debug工具
例如,MySQL软件包中的mysqlbug,执行该工具,将返回debug信息,过滤出其中的Configure command代码块即可

Read the rest of this entry

, , ,

1.系统环境配置

配置中文支持
rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm
rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

修改Hostname
1文件中的HOSTNAME,改为你希望的名字
2,/etc/hosts文件中,把所有原来机器名修改为新的机器名

清除原服务组件

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

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

Read the rest of this entry

按照M(MySQL)-A(Apache)-P(PHP)的顺序,从源代码编译安装。在未安装PHP之前,Apache可以正常开启。安装完PHP,apache restart出现如下错误:

[root@myhost php]# /usr/local/httpd/bin/apachectl stop
Syntax error on line 262 of /usr/local/httpd/conf/httpd.conf:
Cannot load /usr/local/httpd/modules/libphp5.so into server: /usr/local/httpd/modules/libphp5.so: undefined symbol: sqlite3ExprDelete

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