准备

首先总结下:源码安装mysql先确保

1 gcc包括gcc-c++
2 ncurses和ncurses-devel
都已安装
 
[root@localhost mysql-5.0.18]# rpm -qa|egrep "gcc|gcc-++|ncurses"
gcc-c++-4.4.4-13.el6.x86_64
libgcc-4.4.4-13.el6.x86_64
ncurses-base-5.7-3.20090208.el6.x86_64
ncurses-libs-5.7-3.20090208.el6.x86_64
ncurses-devel-5.7-3.20090208.el6.x86_64
ncurses-5.7-3.20090208.el6.x86_64
gcc-4.4.4-13.el6.x86_64
 
然后就是编译配置:
如下是我结合网上资料还有./configure --help总结的,每一项大家查下即可,有的可能用不着,这个配置肯定还可以优化
 
[root@localhost mysql-5.0.18]# ./configure --prefix=/usr/local/mysql --enable-local-infile  --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,latin1 --with-debug
 
好了,开始源码安装mysql时居然提示没装gcc,我勒个去;只好从网上找了个比较好的配置文件,配置了一下yum
yum 配置文件见附件,
vi /etc/yum.repos.d/*.repo
一个是配置yum本地源,另一个是用的163的快速yum源
 
开始yum -y install gcc
可是又出错了
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
updates/gpgkey        
Public key for glibc-common-2.12-1.7.el6_0.5.x86_64.rpm is not installed
 
gpgchek没过,解决方法有三种:(推荐第三个)

1.运行

[root@RedHat Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

可能能解决;

但是如果导入过了这一条就不起作用了,会提示

error: /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: key 1 import failed.

2.运行

[root@RedHat Packages]# yum.conf 文件,把里面的gpgcheck=1改为gpgcheck=0

(不推荐)

注:方法2的效果很好

3.最好的解决办法:

加上"--nogpgcheck"参数

[root@RedHat Packages]# yum install google-chrome-stable_current_i386.rpm --nogpgcheck

 

编译over,make、make install安装,需要等一段时间

 

最后,修改环境变量文件/etc/profile,添加mysqlPATH变量.
      [root@mail mysql]#vi /etc/profile
     
在以下字段添加添加pathmunge /usr/local/mysql/bin
      # Path manipulation
      if [ "$EUID" = "0" ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
        pathmunge /usr/local/mysql/bin

启动mysqld 起不来,查看log发现buffersize有问题,应该是我虚拟机内存太小

cp 安装包support-files/mysql-small.cnf /etc/my.cnf

 

ok

 


Starting MySQL                                             [确定]

[root@localhost ~]# netstat -ant|grep 3306

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN     

 

 

 

 

下面是转载的一个RHEL6上安装过程,也比较靠谱,供参考

http://wo.115.com/?ct=detail&id=34944&bid=1372353

RHEL6 安装mysql源码包

1、下载mysql-5.*.tar.gz。本例以mysql-5.1.53.tar.gz 。

(安装前需要提前安装的rpm文件有gcc、gcc-c++、ncurses-dev,RHEL6默认安装)。

卸载RHEL系统自带的mysql的rpm包,使用以下命令自动逐个卸载:

//注意此步骤执行完后面的安装有危险,只要卸载掉自带mysql-server和mysql的这两个rpm包即可。

(可以选择 rpm -e ——nodeps files)

[root@RHEL6 mysql]# for i in `rpm -qa|grep -i mysql`

>do rpm -e $i ——nodeps

>done

再执行# rpm -qa|grep -i mysql,如果没出现任何信息,就说明卸载干净。
2、 解压mysql-5.1.53.tar.gz 

#tar -zxvf mysql-5.1.53.tar.gz

3、配置mysql(首先在/usr/local/下创建mysql目录并在mysql下创建data目录);此处选择的字符集是gbk也可以选择utf-8、gb2312等
     以下均在解压后的mysql-5.0.20a目录下执行

# mkdir -p /usr/local/mysql/

# mkdir -p /usr/local/mysql/data/    //建立数据库存放目录

# mkdir -p /usr/local/mysql/etc/     //建立数据库配置文件存放目录

#./configure ——prefix=/usr/local/mysql/ ——localstatedir=/usr/local/mysql/data/ ——sysconfdir=/usr/local/mysql/etc/ ——with-charset=utf8

4、编译,安装  执行以下命令(如果make出错需要执行make clean再执行make)
     #make
     #make install
5、添加mysql工作组及用户,由于RHEL6默认自带mysql时已经有mysql用户和mysql目录,此步一般可省
    # groupadd mysql
    # useradd -g mysql mysql 
6、设置文件权限
   # chown -R root:mysql /usr/local/mysql
   # chown -R mysql:mysql /usr/local/mysql/data

   # chown -R mysql:mysql /usr/local/mysql/lib

7、安装数据库文件

    # cd /usr/local/mysql/bin/ 
    # ./mysql_install_db ——user=mysql

10、建立mysql的启动文件
   # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
   # cp support-files/my-medium.cnf /etc/my.cnf
11、启动mysql
   # /usr/local/mysql/share/mysql/mysql.server start

//如果出现

 [root@bogon bin]# chkconfig ——add mynew
[root@bogon bin]# service mynew restart
 ERROR! MySQL manager or server PID file could not be found!
Starting MySQL.. ERROR! Manager of pid-file quit without updating file.

说明安装初始化数据库是出现错误,可能是没设好data的相应权限。

15、让mysql开机自动启动

要重新初始化数据库!

//如果出现“Starting MySQL.Manager of pid-file quit without updating file.[失败]”的提示,可按以下方法解决:
[root@RHEL6 mysql]# ./mysql.server start
Starting MySQL.Manager of pid-file quit without updating file.[失败] 
//以下是解决方法
[root@RHEL6 mysql]# ps -A|grep mysql
 3864 ?        00:00:05 mysqld
[root@RHEL6 mysql]# kill -9 3864    //OK。再启动mysql.server
[root@RHEL6 mysql]# ./mysql.server start
Starting MySQL..                                           [确定]
12、设置mysql的root密码
 # /usr/local/mysql/bin/mysqladmin -u root password ******
13、登录mysql
  # /usr/local/mysql/bin/mysql -u root -p
  然后输入密码

  修改/etc/rc.local文件在  touch /var/lock......(最后一行)的上方添加以下配置
  /usr/local/mysql/share/mysql/bin/mysql.server start

16、让mysql的反应速度提高在/etc/my.cnf文件中的[mysqld]最下方添加以下配置
  [mysqld] 
  skip-name-resolve 
  skip-grant-tables

17、增加MqSQL服务、启动服务并设置下次自动启动自动加载。

# chkconfig ——add mysqld

# service mysqld restart

# chkconfig mysqld on

// 以下是执行ntsysv后,发现mysqld已经加进去了