首先解说一下源码包和rpm包的区别,虽然不是全面的的但是是绝对正确的。

源码包mysql的安装rpm包与源码包的区别

1.linux运行效率,高很多功能模块针对linux开发,在windos上并没有标准化得编程接口,很多功能并不能实现,

并且mysql apache php最早也是在linux上开发的发展的,第三方软件多

2.软件的选择 不一定最新当时要选最稳定的

rpm与源代码

rpm是开发人员再开发完软件后的生成的二进制包 类似exe文件 但是有局限性 不能定制 针对cpu平台 linux版本

源码包呢发行的时候是以源代码的形式发行 对软件足够了解 甚至能改源码 可以更深度定制

-----------------------------------------------

坛搭建过程源码包安装

源码安装过程

Mysql的源码包安装

tar -zxvf mysql-5.1.34.tar.gz -C /usr/local/src/

cd /usr/src/mysql-5.1.34

如果不存在mysql 用户,则建立之

useradd mysql

编译安装

./configure --prefix=/usr/local/mysql --with-extra-charsets=all --with-innodb --with-plugins=partition

注解:

--with-extra-charsets=all:支持所有字符集

--with-innodb:支持innodb存储引擎

--with-plugins=partition:支持分区

make && make install

数据库的初始化:

cd /usr/local/mysql/bin

执行

./mysql_install_db

此命令是初始化脚本,为Mysql运行做准备:来创建MySQL许可表。

此命令执行成功时会在/usr/local/mysql目录下生成var目录,如果执行失败则有可能mysql用户没有创建,需要手工创建:useradd mysql,

再把系统的mysql卸载:rpm -e mysql。

cd /usr/local/

chown -R mysql: mysql mysql/

cd /usr/local/mysql/bin/

把my.cnf 改名字 (因为新数据库没有任何文件的这是之前的文件)

mv /etc/my.cnf /etc/my.cnf.bak

rpm的创建库的位置

cd /var/lib/mysql/

源码包的创建库的位置

cd /usr/local/mysql/var/

初始化数据库更改权限

chown -R mysql:mysql /usr/local/mysql/var/

启动mysql服务器.执行

cd /usr/local/mysql/bin/

./mysqld_safe --user=mysql &

查看进程

ps -ef | grep mysql

套节字文件是

进程和进程的连接

为mysql数据库添加密码

默认的 mysql 已经存在一个root 用户,密码为空

/usr/local/mysql/bin/mysqladmin password 123 创建密码

/usr/local/mysql/bin/mysql -u root -p123 可以进入,用exit 退出 登录的时候用的是/bin/mysql

将源码mysql改成 正常启动方式启动 (把启动脚本放到init.d里)

cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqldd 设启动相的时候用的是share/mysql/mysql.server

chkconfig --add mysqldd

chkconfig --list mysqldd

chkconfig --levels 35 mysqld on

service mysqldd restart

客户端命令

修改/etc/bashrc文件

PATH=/usr/local/mysql/bin:$PATH

export PATH

重新加载一次

. /etc/bashrc 有个空格注意了, 也可以 bash /etc/bashrc 写

可以连接数据了

------------------------------------

apache源码包安装

tar -jxvf httpd-2.2.11.tar.bz2 -C /usr/local/src/

cd /usr/local/src/httpd-2.2.11/

./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite

make && make install

cd /usr/local/apache2/htdocs/ 网页路径

lsof -i:80 查看80端口是否占用

/usr/local/apache2/bin/apachectl start 启动服务

cp bin/apachectl /etc/init.d/http 设置启动

配置文件 可以配置信息

vim /usr/local/apache2/conf/ httpd.conf

命令历史

history

--------------------------------------------

编译php

tar -jxvf php-5.2.9.tar.bz2 -C /usr/local/src/

cd /usr/local/src/php-5.2.9/

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/hanqinet/mysql51/ --with-config-file-path=/usr/local/php

注解:

--with-apxs2=/usr/local/apache2/bin/apxs:用apache的apxs工具把php编译成apache的一个模块

--with-mysql=/usr/local/mysql:与mysql结合

编译安装

make && make install

复制文件

cp /usr/local/src/php-5.2.9/php.ini-dist /usr/local/php/php.ini 自己定义的名字

如果一切顺利的话,apache2/modules/ 下应该有个libphp5.so 的文件

为apache 添加php 支持

编辑

/usr/local/apache2/conf/httpd.conf

在310行增加一行

307 AddType application/x-compress .Z

308 AddType application/x-gzip .gz .tgz

309 AddType application/x-httpd-php .php

DirectoryIndex指令的最后,

添加

165 <IfModule dir_module>

166 DirectoryIndex index.html index.php

167 </IfModule>

测试Apache及php支持

cd /usr/local/apache2/htdocs/

touch a.php

vim a.php

<? phpinfo() ?>

pkill httpd 杀掉之前的httpd

service http restart 重启服务

访问

http://192.168.1.113/a.php

-----------------------------------------

服务器端

unzip UCenter_1.5.0_SC_UTF8.zip

mv upload/ /usr/local/apache2/htdocs/ucenter

chown -R daemon:daemon /usr/local/apache2/htdocs/ucenter

访问

http://192.168.1.113/ucenter

-------------

论坛

unzip Discuz_7.2_SC_UTF8.zip

mv upload/ /usr/local/apache2/htdocs/discuz

chown -R daemon:daemon /usr/local/apache2/htdocs/discuz

第一次进入安装进入这个路径

http://192.168.1.113/discuz/install/

------------------------------------

最后 来点mysql的介绍 ,对mysql感兴趣的朋友可以看看,这个我承认不是我写的资料(mysql的介绍)。但是为了让大家更了解mysql

还是添加上了。

mysql的介绍 其他数据库的介绍

mysql 是开源的,免费得,体积小,并发执行的数据库。mysql一般应用已经足够,在异常处理等方面还有待提升,一边用于网站设计和小型软件的。PHP+mysql 被誉为完美结合。

SQL server 是Microsoft 的数据,上手容易,简单,非常适合新手。一般用于.net 程序设计

oracle 是大型的数据库,体积打。可以支持多个实例同时运行,功能非常强大。

mysql在linux能充分发挥它的威力 (免费 跨平台 轻 支持多并发)

mysql是目前最主流的 跨平台的 开源的 关系型数据库软件 最早是由瑞典的mysqlAB公司所开发

08年被sun公司所收购,09年sun被oracle收购

由于mysql的体积小 150M oracle 900M 速度快 总体成本低 (免费 oracle20万一个核)尤其是源代码开放这一特点 使他成了很多中小网站为了降低网站总体成本而选择的数据库

优点

1.使用c和c++编写 保证源代码的可移植性

2.支持多种操作系统 linx,mac os,freeBSD,windos,aix。。。

3.为多种语言提供了api,包括(C C++ java php 。。。)

4.支持多线程,充分利用cpu资源

5.支持tcp/ip,ODBC和JDBC等多种数据的连接途径

6.可以处理拥有上千万条记录的大型数据

7.支持多种存储引擎

缺点

相对于oracle DB2 SQLserver来讲

规模小,功能有限(mysql cluster的功能和效率比较差)

存储引擎

MyISAMMysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务

InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定

BDB源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性

Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失

Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用

Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差

Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用

CSV逻辑上由逗号分割数据的存储引擎BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继

EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。

同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。

将selinux 和 iptables 关闭

selinux 是linux对文件和功能管理的服务