源码编译mysql 5.5.40

[root@localhost cmake-3.1.0]#  yum install zlib-devel openssl-devel gcc-c++ gcc bison cmake ncurses-devel -y

[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -g mysql -r -s /sbin/nologin mysql
[root@localhost ~]# id mysql #确认用户
[root@localhost ~]# mkdir /var/data/mysql -p #存放数据库文件
[root@localhost ~]# chown mysql:mysql /var/data –R

[root@localhost MailServer]# tar zxvf  mysql-5.5.40.tar.gz -C ../
[root@localhost MailServer]# cd ../mysql-5.5.40/

cmake编译MySQL的一些常用选项:

------------------------------------------------------------
cmake mysql 编译安装:
./configure -> cmake .
./configure --help -> cmake -LH -> ccmake .
------------------------------------------------------------
指定安装文件的安装路径常用选项
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc
------------------------------------------------------------
默认编译的存储引擎包括: csv, myisma, myisammrg, heap. 若要安装其他存储引擎,可以使用类似如下的编译选项
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
------------------------------------------------------------
若要明确指出不编译某存储引擎, 可以使用类似如下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
例如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
------------------------------------------------------------
若要编译进其他功能, 如SSl等, 可使用类似如下选项来实现编译时使用某库文件或者, 或者不使用某库文件.
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
------------------------------------------------------------
其他常用选项:
-DMYSQL_TCP_PORT=3306
-MYDQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLE_PROFILING=1
------------------------------------------------------------

开始编译

[root@localhost mysql-5.5.40]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.40 
-DMYSQL_DATADIR=/var/data/mysql  #数据库目录
-DSYSCONFDIR=/etc  #配置文件目录
-DWITH_INNOBASE_STORAGE_ENGINE=1  #启用InnoDB存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1  #启用ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1  #启用黑洞存储引擎
-DWITH_READLINE=1 
-DWITH_SSL=system  #启用SSL协议
-DWITH_ZLIB=system  #启用Zlib压缩
-DWITH_LIBWRAP=0 
-DDEFAULT_CHARSET=utf8  #设置字符集utf8
-DMYSQL_NUIX_ADDR=/tmp/mysql.sock 
-DDEFAULT_COLLATION=utf8_general_ci

make

make install

如出现错误,原因是未安装数据库

141223 21:05:40 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

141223 21:05:40 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
141223 21:05:45 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
^G/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13)
141223 21:05:46 [ERROR] Aborting

编译完成后,安装数据库

# cd /usr/local/mysql    
# chown -R mysql .    
# chgrp -R mysql .    
# scripts/mysql_install_db --user=mysql  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  
# chown -R root .   
# chown -R mysql ./data

错误日志显示:Can't open the mysql.plugin table...2009-06-01 00:52Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

解决方法:重新执行数据库安装过程,并带上

--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

将mysql的配置文件拷贝到/etc

cp support-files/my-medium.cnf /etc/my.cnf

拷贝服务,设置开机启动,启动MySQL

#cp support-files/mysql.server /etc/init.d/mysql
#chkconfig mysql on
#service mysql start  --启动MySQL

查看MySQL启动状态

# service mysqld status
MySQL running (62374)                                      [  OK  ]
原文地址:https://www.cnblogs.com/xfan1982/p/4182206.html