MySQL源码包安装

如果我们的网络不能与外网连通的话,我们就需要通过源码包安装。

此处以mysql5.7.26为例

1、上传源码包

上传mysql安装包和boost安装包到我们的服务器上

[root@wy ~]# rz boost_1_59_0.tar.bz2 mysql-5.7.26.tar.gz

2、卸载boost

[root@wy ~]# yum -y remove boost-*

[root@wy ~]# rpm -ivh mysql-community-5.7.26-1.el7.src.rpm

在当前目录下生成的rpmbuild的目录文件,然后在rpmbuild/SOURCES/目录下才是我们.tar.gz结尾的源码包。解压boost_1_59_0.tar.bz2到root目录下,待会安装直接指定boost目录。

安装解压工具bzip 解压boost_1_59_0.tar.bz2

[root@wy ~]#yum install -y bzip2

[root@wy ~]# cd /root/rpmbuild/SOURCES/

[root@wy  SOURCES]# tar  -jxvf  boost_1_59_0.tar.bz2  -C  /root/

root@wy  SOURCES]# cd 

3、卸载自带的mysql

[root@wy ~]# yum -y remove mysql*

[root@wy ~]# yum -y remove mariadb*

4、安装mysql

4.1、安装mysql依赖包

安装mysql需要使用cmake来进行编译,所以需要安装cmake,并且5.7版本cmake版本不低于2.8

[root@wy ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel

4.2、添加mysql用户和用户组

[root@wy ~]#  groupadd mysql

[root@wy ~]# useradd -M -s /sbin/nologin -r -g mysql mysql

4.3、创建mysql数据库存放位置并修改目录权限

[root@wy ~]# mkdir -p /data/mysql/{data,log}

[root@wy ~]# chown -R mysql:mysql /data/mysql

此处注意!!! /data 目录的权限是755、并且改目录下的文件都要是755 如果不是就修改

使用ll命令查看权限是否是755

[root@wy ~]# ll /

查看 /data 目录是否是755

[root@wy ~]# ll /data/

查看该目录下文件的权限是不是755

如果不是的话执行以下命令

[root@wy ~]# chmod -R 755 /data

4.4、解压源码包

[root@wy ~]#  cd /root/rpmbuild/SOURCES/

[root@wy SOURCES]# tar  -zxvf mysql-5.7.26.tar.gz  -C  /root/

4.5、预编译

        预编译需要我们指定安装服务的参数或者模块,还会对编译环境进行测试,只有通过测试,才能进行编译,预编译失败一般都是缺少编译环境GCC或者其他的依赖包,需要我们手工安装完依赖包后,再次进行预编译。

[root@wy ~]# cd mysql-5.7.26

[root@wy mysql-5.7.26]# cmake

 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 

 -DMYSQL_DATADIR=/data/mysql/data 

 -DSYSCONFDIR=/etc

 -DWITH_MYISAM_STORAGE_ENGINE=1

 -DWITH_INNOBASE_STORAGE_ENGINE=1 

-DWITH_MEMORY_STORAGE_ENGINE=1

-DWITH_READLINE=1 

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock

 -DMYSQL_TCP_PORT=3306 

-DENABLED_LOCAL_INFILE=1  

-DWITH_PARTITION_STORAGE_ENGINE=1 

-DEXTRA_CHARSETS=all 

-DDEFAULT_CHARSET=utf8 

-DDEFAULT_COLLATION=utf8_general_ci 

-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/root/boost_1_59_0

参数解释:

DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql

DEFAULT_CHARSET:指定服务器默认字符集,默认latin1

DWITH_EXTRA_CHARSET=all:支持扩展字符集

DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci

DENABLED_LOCAL_INFILE:以使用load data infile命令从本地导入文件,默认OFF。

DENABLED_LOCAL_INFILE=1:支持将本地文件转换为数据库数据

DWITH_READLINE=1 :使用readline功能,即方便在命令行复制、粘贴命令

DWITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,

DWITH_MYISAM_STORAGE_ENGINE=1 :添加MYISAM存储引擎支持

DWITH_INNOBASE_STORAGE_ENGINE=1 :添加INNOBASE存储引擎支持

DWITH_MEMORY_STORAGE_ENGINE=1 : 添加MEMORY存储引擎支持

DSYSCONFDIR:初始化参数文件目录

DMYSQL_DATADIR:数据文件目录

DMYSQL_TCP_PORT:端口号 默认 3306

DMYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

检查执行结果

[root@wy mysql-5.7.26]# echo $?

结果为0表示执行成功,其他为执行失败

4.6、编译

[root@wy mysql-5.7.26]# make  -j  $( grep processor /proc/cpuinfo | wc -l  -1)

-j:指定核心数 

注意:如何不是单核心这里不要使用所有的核心!否则会报错。

[root@wy mysql-5.7.26]#  grep processor /proc/cpuinfo | wc -l

查看cpu核心数

检查执行结果

[root@wy mysql-5.7.26]# echo $?

4.7、安装

[root@wy mysql-5.7.26]# make install

查看执行结果 

[root@wy mysql-5.7.26]# echo $?

4.8、修改mysql目录权限

[root@wy ~]#  chown -R mysql:mysql /usr/local/mysql/

查看 /usr/local/mysql 权限是不是755

[root@wy ~]# ll  /usr/local/

找到mysql文件查看权限 如果不是进行修改 执行以下命令

[root@wy ~]#  chmod 755 /usr/local/mysql

注意:这里不要加-R,我们只要保证/usr/local/mysql 这一个文件的权限是755就可以。

如果这里加上-R之后我们就无法执行这个文件下的一些它自带的文件,后面初始化的时候就会报错。跟上边那个这里是不一样的。

4.9、生成配置文件

自己创建my.cnf配置文件

[root@wy ~]#   vim /etc/my.cnf

添加以下内容

[mysqld]

basedir=/usr/local/mysql        #mysql安装目录

datadir=/data/mysql/data     #mysql数据存放目录

port=3306                     #mysql监听端口

socket=/usr/local/mysql/mysql.sock #mysql.sock 文件存放目录

symbolic-links=0  #关闭mysql的符号链接

character-set-server=utf8      指定mysql的字符集编码为utf8

log-error=/data/mysql/log/mysqld.log  #指定mysql的错误日志存放路径

pid-file=/usr/local/mysql/mysqld.pid  #mysql的pid文件存放目录

4.10、生成服务启动脚本

[root@wy ~]#  cp        /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@wy ~]#   chmod +x /etc/init.d/mysqld     #给脚本添加执行权限

4.11、添加mysqld开机自启

[root@wy ~]#  chkconfig --add mysqld         #把mysql添加到系统服务

[root@wy ~]#  chkconfig mysqld on                #把mysql添加到开机自启动

[root@wy ~]#  chkconfig --list mysqld            # 查看mysql开机自启动状态

4.12、初始化数据库

如果无法初始化先启动

[root@wy ~]#  /usr/local/mysql/bin/mysqld  --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

4.13、启动服务

[root@wy ~]#  etc/init.d/mysqld  start

你可能感兴趣的:(运维-服务搭建,mysql,数据库,database)