Linux编译安装MySQL

##前言
折腾了两三天总算是吧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

结束

总得来说,还是相当繁琐的,如果想不出错的话,就要对编译安装的一些原理要有所了解,记住自己设置的安装目录与数据目录,这样会大大提高效率与降低错误率。

赏瓶可乐吧(*^▽^*)