源码安装的好处就是自己可以清楚的知道数据目录、文件的分配位置。
(1)、安装之前,首先要安装一些依赖包
<span style="white-space:pre"> </span> yum install gcc gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel perl perl-Data-Dumper
这其中,很多时候会忘了安装某个包相对应的devel包,需要多多注意。
(2)、进入mysql官网下载安装包 mysql-5.6.28.tar.gz 版本是社区版,坑爹,开始下载的时候,我选的是带有 glibc 的包结果运行的时候老是提示我 “没有CMake*.txt” 文件,后面查资料才发现原来这个包是拷贝包,也就是已经编译过了的包,只需要初始数据库就OK了。
另外的准备工作,还有创建用户和组,groupadd mysql; useradd -g mysql mysql; 当然在添加用户的时候,可以给定 nologin 权限。 最后,还需要创建你所需要的目录。如sock文件存放的目录,log文件存放的目录,data文件存放的目录。
(3)预编译
Cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data
-DSYSCONFDIR=/usr/local/mysql/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-DENABLED_LOCAL_INFILE=1
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
-DWITH_EXTRA_CHARSETS=all
其中,
DSYSCONFDIR是my.cnf文件的目录。
(4)、make && make install 分步执行
(5)、切换目录,拷贝文件
cp ./support-files/mysql.server /etc/init.d/mysqld
cp ./my.cnf /usr/local/mysql/etc/my.cnf
vi /etc/init.d/mysqld && 设置conf的值为/usr/local/mysql/etc/my.cnf
编辑my.cnf配置文件
[mysql]
socket = /var/lib/mysql/mysql.sock
[mysqld]
user = mysql
port = 3311
binlog_format = mixed // 所有的服务器日志格式都是mixed
log_bin = lezqz-bin //二进制文件的名称
datadir = /usr/local/mysql/data
basedir = /usr/lcoal/mysql
socket = /var/lib/mysql/mysql.sock
server_id = 100
(6)、对所有mysql相关的目录改变属主 chown,改变整个目录需要加 “-R” 参数
(7)、初始化数据库 ./scripts/mysql_install_db --datadir=.... --user=mysql --basedir=..... 其中 datadir 和 user 参数是必须要给出的
(8)、添加服务 并启动服务
chkconfig --add mysqld ; chkconfig mysqld on; service mysqld start
(9)、可能出现的错误
Starting MySQL..... ERROR! The server quit without updating PID file (/u01/data1/mysql/localhost.localdomain.pid).
这个错误是我碰到过最多的,其中的错误原因也是各种各样,最可能的原因是 (出错首先要查看错误日志文件)
1、配置文件错误
2、初始化数据库时出错 ,预编译时和初始化时给定数据目录不一致 (我今天就碰到了这个错误,初始化了两次,后面解决了这个问题)
3、文件属主有错误,没有权限
以上就是我源码安装mysql的过程了,源码安装时最蛋疼的,因为make的时候,时间太长。当然运维时,一般是用的拷贝版安装,将你现在安装好的mysql拷贝到另一台机子上去就行了,目录什么的照搬。