本文章介绍了关于CentOS6.2编译安装MySQL5.5.25有需要的同学可参考一下。
按照之前ubuntu安装的步骤安装后,启动mysql启动不起来。错误代码为“ The server quit without updating PID file(/var/lib/mysql/CentOS.pid)”,百度和google都搜索了一些资料,基本一致,对我没帮助,按照他们说的修改了也不行。于是乎结合张晏的博客,最终成功搞定。
第一步:我们首先安装依赖库和开发工具
	  
		|  代码如下 | 
		 | 
	  
	  
		| 
 #依赖库和开发工具 
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers 
#Nginx 
yum -y install pcre-devel  zlib-devel 
#Php 
yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-devel 
  
#Mysql 
yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* mysql-devel 
  
 | 
	  
	
第二步:由于mysql5.5开始,不再使用configure安装,而是使用cmake。所以需要先安装cmake
	  
		|  代码如下 | 
		 | 
	  
	  
		wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz 
tar -zxvf cmake-2.8.6.tar.gz 
cd cmake-2.8.6/ 
./configure 
make && make install  | 
	  
	
 第三步:cmake安装mysql(我已经下载好了mysql源码文件,放在U盘里,拷贝到/tmp目录下)
 
	  
		|  代码如下 | 
		 | 
	  
	  
		| 
 //进入/tmp目录下 
tar -zxvf mysql-5.5.25.tar.gz 
cd mysql-5.5.25 
cmake  
-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql  
-DMYSQL_DATADIR=/user/local/webserver/mysql/data  
-DSYSCONFDIR=/etc  
-DEXTRA_CHARSETS=all  
-DDEFAULT_CHARSET=utf8  
-DDEFAULT_COLLATION=utf8_general_ci  
-DWITH_INNOBASE_STORAGE_ENGINE=1  
-DWITH_ARCHIVE_STORAGE_ENGINE=1  
-DWITH_BLACKHOLE_STORAGE_ENGINE=1  
-DWITH_FEDERATED_STORAGE_ENGINE=1  
-DWITH_PARTITION_STORAGE_ENGINE=1  
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1  
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock  
-DMYSQL_TCP_PORT=3306  
-DWITH_DEBUG=0  
-DENABLED_LOCAL_INFILE=1 
回车执行,执行完成后继续执行 make && make install 
   
 | 
	  
	
第四步:设置mysql
 
	  
		|  代码如下 | 
		 | 
	  
	  
		#设置Mysql 
#在support-files目录中有五个配置信息文件(这里很重要,一定要根据自己的内存复制对应的cnf文件,否则mysql始终起不来): 
#my-small.cnf (内存<=64M) 
#my-medium.cnf (内存 128M) 
#my-large.cnf (内存 512M) 
#my-huge.cnf (内存 1G-2G) 
#my-innodb-heavy-4G.cnf (内存 4GB) 
cd /usr/local/webserver/mysql 
cp ./support-files/my-huge.cnf /etc/my.cnf  
vi /etc/my.cnf 
#在 [mysqld] 段增加 
datadir = /data/mysql 
wait-timeout = 30 
max_connections = 512 
default-storage-engine = MyISAM 
#在 [mysqld] 段修改 
max_allowed_packet = 16M  
   | 
	  
	
第五步:添加mysql用户和用户组,生成新的mysql授权表
 
	  
		|  代码如下 | 
		 | 
	  
	  
		| 
 //添加mysql运行的用户和用户组 
groupadd mysql 
useradd -g mysql mysql -s /bin/false -d /home/mysql  //没有shell,不可本机登陆(安全起见) 
cd /usr/local/webserver/mysql 
chown -R root . 
chown -R mysql data 
chgrp -R mysql . 
//生成新的mysql授权表 
//进入mysql安装目录下的脚本目录 
cd /usr/local/webserver/mysql/scripts 
//利用mysql_install_db脚本生成新的mysql授权表 
./mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql 
//mysql server在系统中的服务项设置 
//复制服务文件并修改 
cd /usr/local/webserver/mysql/support-files 
cp mysql.server mysqld 
//修改mysqld 
basedir=/usr/local/webserver/mysql 
datadir=/usr/local/webserver/mysql/data 
mv mysqld /etc/init.d/mysqld 
chmod 755 /etc/init.d/mysqld 
//设置软连接使mysql,  mysqldump,  mysqladmin这三个bin命令能在shell中直接运行 
sudo ln -s /usr/local/webserver/mysql/bin/mysql /usr/bin 
sudo ln -s /usr/local/webserver/mysql/bin/mysqldump /usr/bin 
sudo ln -s /usr/local/webserver/mysql/bin/mysqladmin /usr/bin 
 | 
	  
	
rm -rf /etc/mysql/my.cnf 因为已经把此文件复制到/etc/my.cnf  如果不删除的话,mysql启动不起来。
第六步:启动mysql,设置mysql用户名和密码
 
	  
		|  代码如下 | 
		 | 
	  
	  
		| 
 /etc/init.d/mysqld start 
//设置root密码 
mysqladmin -u root password "admin" 
//mysql数据库中文乱码解决 
vi /etc/my.cnf 
//然后在[mysqld]配置选项下添加 
character-set-server=utf8 
 
//然后进入mysql 
cd /usr/local/webserver/mysql/bin 
mysql -u root -p 
提示输入密码 
mysql> show variables like '%character%'; 
//结果:character_set_database,character_set_server两项都变为utf8了 
 |