mysql5.6编译安装详解

1,下载安装包    tar.gz

mysql下载官网--MySQL Community Server 5.6.26--source code--

--Generic Linux (Architecture Independent), Compressed TAR Archive(.tar.gz)

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz

2.下载完成后检查文件的MD5,确认下载的是原本,以防被人篡改。

#md5sum mysql5.6.26.tar.gz

3.安装cmake

yum -y install cmake

4.检查是否已经安装mysql

#rpm -qa |grep mysql

有的话要卸载以前安装的mysql

#rpm -e --nodeps xxx

(-ivh 安装rpm包的参数,是以verbose模式安装,可以显示进度条;--nodeps 不考虑依属关系,强制的安装或卸载;--force 强制的)

删除相关配置文件

#rm /etc/my.cnf

5.安装编译代码需要的包(bison,gcc-c++,ncurses,libaio)

yum install -y ncurses-devel.x86_64
    yum install -y libaio.x86_64
    yum install -y bison.x86_64
    yum install -y gcc-c++.x86_64

如果没有安装,在编译阶段cmake,则会报相应错误:

a.-- Could NOT find Curses  (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
  Curses library not found.  Please install appropriate package,

--没有安装ncurses

b.CMake Error at /usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:37 (get_filename_component):

get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
CMakeLists.txt:3 (PROJECT)

CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: Internal CMake error, TryCompile configure of cmake failed

--没有安装gcc-c++

c.安装相应编译包后,需要把之前的CMakeCache.txt文件删除

#find / -name CMakeCache.txt

#rm -rf /usr/local/.../CMakeCache.txt

6.cmake执行编译

#cd /../mysql-5.6.26

#time cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR==/data/mysql/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

则显示编译成功

7.make && make install安装mysql

#make && make install

花费时间比较长。

8.配置mysql,创建用户和用户组

检查是否创建mysql用户:

#cat /etc/passwd |grep mysql

#cat /etc/shadow |grep mysql

如果没有存在:

#groupadd mysql -s /sbin/nologin    创建mysql用户组,但不能登录系统

#useradd -g mysql mysql    创建的mysql用户所属组是mysql用户组

or

#groupadd mysql

#useradd -r -g mysql mysql    -r表示mysql用户是系统用户,不可用于登录系统

or

#groupadd mysql

#useradd mysql -g mysql -M -s /sbin/nologin

-g  表示新用户所属用户组

-M  表示不建立根目录

-s  定义使用的shell,/sbin/nologin表示不能登录系统

9.创建数据库路径和赋予权限

#mkdir -p /data/mysql    -p表示递归创建目录

#chown -R mysql.mysql /data/mysql

#chmod 755 /data/mysql

#chown -R mysql.mysql /usr/local/mysql

10.初始化数据库

#cd /usr/local/mysql

#cp support-files/my-default.cnf /etc/my.cnf

#scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

(执行的mysql_install_db脚本,对mysql中的data目录进行初始化并建立系统表格。注意mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(我们之前指定的mysql用户)执行这个脚本,或者root用户执行,但是root用户执行时必须加上参数--user=mysql。如果mysql的安装目录不是/usr/local/mysql,还必须指定目录参数--basedir=/../,--datadir=/../)

如果报错:

Installing MySQL system tables.../usr/local/mysql/bin/mysqld: File ‘/home/data/mysql/binlog/mysql-bin.index‘ not found (Errcode: 2 - No such file or directory)
2014-06-27 10:47:14 9686 [ERROR] Aborting

2014-06-27 10:47:14 9686 [Note] Binlog end
2014-06-27 10:47:14 9686 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

解决:#mkdir -p /data/mysql/binlog/

#chown -R mysql.mysql /data/mysql/binlog

最后提示:

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

则表示初始化完成。

11.添加开机启动项和开机启动服务systemctl

#cp supports-files/mysql.server /etc/init.d/mysqld

#chmod 700 /etc/init.d/mysqld

#echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile    设置环境变量

#source /etc/profile     使新设置的环境变量立即生效

#cd /lib/systemd/system

#vim mysqld.service

[Unit]

Description=mysql

After=network.target

[Service]

Type=forking

ExecStart=/www/lanmps/init.d/mysqld start

ExecReload=/www/lanmps/init.d/mysqld restart

ExecStop=/www/lanmps/init.d/mysqld  stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

具体参考文档:systemctl系统服务管理,service,chkconfig

http://jasonzhu.blog.51cto.com/5594807/1692442

12.mysql服务启动

#service mysqld start

or

#systemctl start msyqld.service

13.检验mysql是否开启成功

#ps aux |grep mysql

or

#nestat -lnp |grep 3306

or

#mysql

>show databases;

设置mysql的root用户密码

#mysqladmin -uroot password

如果报错1:

2014-06-24 14:56:54 31726 [Note] Server socket created on IP: ‘::‘.
2014-06-24 14:56:54 31726 [ERROR] Can‘t start server : Bind on unix socket: Permission denied
2014-06-24 14:56:54 31726 [ERROR] Do you already have another mysqld server running on socket: /usr/local/mysql/mysql.sock ?
2014-06-24 14:56:54 31726 [ERROR] Aborting

主要原因:

/usr/local/mysql的目录需要赋予mysql权限

根据日志文件,检查运行权限,确定是否因为没有权限在/data/mysql/目录中写入mysql.sock文件。

#chown -R mysql.mysql /data/mysql

#chown -R mysql.muysql /usr/local/mysql

如果报错2:

。。。。

可能因为存在mysql进程,所以开启服务的时候会报错

kill [pid]杀死相应进程即可。

mysql多实例配置:http://www.linuxidc.com/Linux/2015-06/119354.htm

时间: 2024-12-28 10:50:26

mysql5.6编译安装详解的相关文章

CentOS程序包管理器rpm、yum以及程序包编译安装详解

一.程序包管理器RPM和Yum简介 程序包管理器:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,可以更方便地实现程序包的安装.升级.卸载和查询等管理操作. rpm软件包管理器(RPM Package Manager):rpm包存在依赖关系,依赖关系复杂,安装时间很长,虽然可以忽略依赖关系,但是可能会导致程序包安装后无法正常使用. yum程序包管理器( Yellow dog Updater, Modified):yum是基于RPM包管理,自动解决程序包间的依赖关系.根据配置文件的资源地

Apache服务简介及编译安装详解

Apache服务简介及编译安装详解 一.Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是目前世界上使用最广泛的一种web server,它以跨平台,高效和稳定而闻名,可以运行在几乎所有广泛使用的计算机平台上.Apache的特点是简单.速度快.性能稳定,并可做代理服务器来使用. Apache是用C语言开发的基于模块化设计的web应用,总体上看起来代码的可读性高于php代码,它的核心代码并不多,大多数的功能都被分割到各种

MySQL5.6二进制软件包编译安装详解(三)

一.软件环境 [[email protected] ~]# uname -r 3.10.0-862.el7.x86_64 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 二.安装部署过程详解 MySQL安装3种方式:1>rpm包安装应用文件默认安装在/usr/local 目录下2>源码编译需要定制文件路径和参数3> 二进制免编译方式优点是可以指定文件安装路径,不存在依赖

MySql5.5.37编译安装详解

      今天为大家介绍下mysql5.5.37的编译安装方式,在工作中编译安装也是我们常用的一种方式.希望通过这篇文章的介绍,能够给大家提供一个安装思路! 一.创建mysql的安装目录和用户 mkdir -p /usr/local/mysql  #安装mysql mkdir -p /usr/local/mysql/data   #存放数据库 groupadd mysql useradd -r -g mysql mysql 二.yum安装依赖库 yum install gcc-c++ ncur

Nginx服务简介及编译安装详解

一.Nginx简介 Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反向代理服务器,其性能与IMAP/POP3代理服务器相当.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统资源少而著称.Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多 二.Nginx工作原理 Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),loc

centOS linux 下nginx编译安装详解

Nginx的官方网站是 www.nginx.org Nginx的下载地址是:http://nginx.org/en/download.html 由 于官网的设计非常简洁不大气不上档次,所以我们可以很容易的找到我们需要的内容.打开页面发现有三个版本,分别是Mainline version(开发版).Stable version(稳定版).Legact version(历史稳定版).在这里我们下载最新的稳定版本nginx-1.6.2. 在安装Nginx之前,我们要确保系统已经安装了gcc,opens

Linux程序管理之rpm,yum,编译安装详解

操作系统:CentOS 6.7 内核版本:2.6.32-573.el6.x86_64 程序编译概念 程序要在机器上运行,就需要编译,编译针对特定的OS平台和硬件平台,编译后的程序只能运行在特定的软硬平台上  交叉编译:        在测试机上针对其他平台进行程序编译 编译过程:        预编译 -> 编译 -> 汇编 -> 链接            链接:生成库调用的头文件            静态链接:程序文件本身集成所需调用的库文件            动态链接:调用标

编译安装详解

1. 编译安装概述 前面两篇关于程序包管理器的文章谈到,无论是使用rpm命令还是yum命令安装的都是已编译好的程序包,在整个安装过程中用户只需执行一条命令即可完成安装.这样带来的好处是方便,但因为是安装的是已编译好的包,所以用户的系统平台环境必须与rpm包制作者的系统平台环境相同.此外,如果用户要安装使用某程序上的某个功能,而rpm包制作者在编译过程中默认没有指定该功能的实现,这时候该怎么办呢?更何况如果某程序只是提供源码而没有现成的rpm包.这时就需要用户手动编译安装了,而编译安装就是将程序源

MySQL- 5..7.24-winx64 安装详解

一 MySQL 安装及配置 1.下载 首先上MySql的官网下载  https://dev.mysql.com/downloads/mysql/ ,本人下载的是 mysql-5.7.24-winx64.zip版. 2.解压存放目录 下载完解压到你想要存放的位置  我的是解压到D:\Program Files\MySQL . 3.配置环境变量 在环境变量path中追加一句:;D:\Program Files\MySQL\bin   切记前面有其他环境变量时一定加 ; 4.自己配置mysql的配置文