MySQL果然是不愧是目前最火的数据库之一,自从mysql5.5.8之后,MySQL的源码包编译安装都要用到cmake来进行编译了,编译的过程没有本质的区别,但是要直观很多。以前安装过很多次MySQL,每次都会有些小小错误。记录一下本次安装过程,以备日后参考。
1.源码包准备
(1)mysql-5.5.15.tar.gz mysqlmysql源码包。去下载最新的mysql5.5.15。注意千万不要下成了安装包,忙活半天都白搭。我就是如此,悲剧!
(2)cmake-2.8.4.tar.gz,cmake安装包.在可下最新版本。
(3)安装所需相关库文件
#yum install -y gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
2.编译过程
(1)创建目录,用户和权限。
#mkdir -p /usr/local/mysql #建立mysql安装目录
#mkdir -p /data/mysql#建立mysql数据库目录
#groupadd mysql #添加mysql组
#useradd -g msyql msyql #添加一个mysql用户并加入到mysql组中
#chown -R mysql.mysql /data/mysql #将/data/mysql目录的所有权赋予mysql组中的mysql用户
(2)安装cmake
#tar cmake-2.8.4.tar.gz
#cd cmake-2.8.4
#./configure
#make && make install
(3)安装mysql
#cd mysql-5.5.15
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 ‘这一堆东西真的看懂的没几个,,没办法初学者。
#make &&make install
#cp support-files/my-medium.cnf /etc/my.cnf #如果你的机器的内存教大,可以复制My-huge.cnf文件
#chmod 755 scripts/mysql_install_db
#scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysql/ ##初始化数据库
# cp support-files/mysql.server /etc/init.d/mysql #设置开机启动mysql
#chmod 755 /etc/init.d/mysql
#chkconfig mysql on #开机启动
#echo ‘export PATH=/usr/local/mysql/bin:$PATH’ >> /etc/profile #将mysql的安装路径加入PATH中,方便启动mysql(重启生效)
#/etc/init.d/mysql start #启动mysql
可以在进程中查看mysql是否启动,完成。
设置一个mysql的root密码
#mysqlamdin -u root password ‘123456’
在这里我出现过一个问题:删除mysql 重新安装后会有一些错误。在编译完mysql后启动时会提示
Starting MySQL..The server quit without updating PID file (/data/mysql/localhost.localdomain.pid
此时需要编辑vi /etc/my.cnf中的[mysqld]模块,在其中加入你的datadir路径如
datadir = /data/mysql
如果路径中没有localhost.localdomain.pid文件可能需要touch一个,然后赋予mysql用户的权限。
最后ps -aux |grep mysql
kill 掉mysql的进程
#/etc/init.d/mysql start 即可