##前言
折腾了两三天总算是吧MySQL给编译安装好,这两天编译安装走了很多弯路,今天编译安装的步骤和一些要点整理一下。
MySQL的编译安装
安装所需要系统库相关库文件
gcc gcc-c++ gcc-g77 autoconf automake zlib fiex libxml ncurses-devel libmcrypt libtool-ltdl-devel*
yum install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* -y
安装编译所需的依赖包
创建mysql安装目录
编译安装的优势在于可以自定义安装,由用户设定一下配置。比如安装目录,数据存放目录等
[root@localhost mysql]# mkdir -p /usr/local /mysql/
创建数据存放目录
[root@localhost mysql]# mkdir -p /data/mysql/
创建用户和用户组与赋予数据存放目录权限
[root@localhost mysql]# useradd -r -s mysql mysql
-r 创建系统用户(不会创建家目录)
安装cmake
(mysql5.5以后是通过cmake来编译的)
yum install cmake -y
下载MySQL
编译安装需要用到源码包,先到MySQL官网下载源码包地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
这里我下载的是社区版的5.7版本
这里注意下载Source Code 源码,然后最好选择带boost的版本以免以后重新下插件
解压
在安装包的目录下解压
[root@localhost down]# tar xf mysql-boots-5.7.27.tar.gz
[root@localhost down]# cd mysql-5.7.27
编译前配置
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
这个过程叫预编译,主要是生成MakeFile文件,就是编译时的配置文件
编译
make
这个过程很久,虚拟机的话预先把内存和CPU数量提高,速度会快很多
make -j 2
用两个进程开始编译
安装
make install
到这一步仅仅完成了一半
清空配置文件
>/etc/my.cfn
因为Linux的默认db是mariadb,所以/etc/my.cfn 下放的是mariadb的配置文件,需要先清空在进行初始化
初始化
cd /usr/local/mysql/bin
./mysqld --initalize --user=mysql --basedir=/usr/local/mysql
--datadir=/data/mysql
初始化后会获得一个临时密码用于登录mysql
配置环境变量
cp /usr/local/mysql/bin/mysql /usr/bin/
配置与启动MySQL
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
进入MySQL并修改密码
mysql -uroot -p临时密码
set password='密码' #设置密码
设置开机自启
chkconfig mysqld on
结束
总得来说,还是相当繁琐的,如果想不出错的话,就要对编译安装的一些原理要有所了解,记住自己设置的安装目录与数据目录,这样会大大提高效率与降低错误率。