`

MySQL 5.7.12 源码编译安装

    博客分类:
  • DB
阅读更多
 
编写不易,转正请注明: http://shihlei.iteye.com/blog/2296886
环境准备:
 
     mysql 安装包:mysql-boost-5.7.12.tar.gz
     系统版本:CentOS Linux release 7.2.1511 (Core)
 
一 清理环境
 
     yum list installed *mysql*
     yum remove installed *mysql*
 
二 创建mysql组和用户
     
    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
 
    注:mysql 用户设置为禁止登陆,分配有限资源,以便限制访问
 
三 创建数据库使用目录
 
    mkdir /usr/local/mysql
    mkdir -p /data/mysql_data
    chown -R mysql:mysql /data/mysql_data
 
四 编译安装
 
     1)安装编译环境
 
          yum install cmake make gcc gcc-c++ ncurses-devel
 
     2)cmake 生成 makefile 以供指导安装
 
          tar -xvf  mysql-boost-5.7.12.tar.gz
 
          cd mysql-5.7.12 
 
          cmake   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql         -DMYSQL_DATADIR=/data/mysql_data          -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock           -DSYSCONFDIR=/etc           -DWITH_MYISAM_STORAGE_ENGINE=1          -DWITH_ARCHIVE_STORAGE_ENGINE=1           -DWITH_BLACKHOLE_STORAGE_ENGINE=1           -DWITH_INNOBASE_STORAGE_ENGINE=1          -DWITH_MEMORY_STORAGE_ENGINE=1          -DWITH_READLINE=1           -DMYSQL_TCP_PORT=3306           -DENABLED_LOCAL_INFILE=1          -DWITH_PARTITION_STORAGE_ENGINE=1           -DEXTRA_CHARSETS=all          -DDEFAULT_CHARSET=utf8          -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost/boost_1_59_0/
 
          注:cmake 使用你的编译解释:
 
 
 
          注:这里遇到的问题:
     
          错误一:
 
-- Running cmake version 2.8.11
-- Could NOT find Git (missing:  GIT_EXECUTABLE)
-- Configuring with MAX_INDEXES = 64U
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
CMake Error at cmake/os/Linux.cmake:41 (MESSAGE):
  Unsupported compiler!
Call Stack (most recent call first):
  CMakeLists.txt:162 (INCLUDE)
          
          解决方法:yum install  gcc  gcc-c++
 
          错误二:
 
-- Could not find (the correct version of) boost.
-- MySQL currently requires boost_1_59_0
 
CMake Error at cmake/boost.cmake:81 (MESSAGE):
  You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
 
  This CMake script will look for boost in <directory>.  If it is not there,
  it will download and unpack it (in that directory) for you.
 
  If you are inside a firewall, you may need to use an http proxy:
 
  export http_proxy=http://example.com:80
 
Call Stack (most recent call first):
  cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST)
  CMakeLists.txt:451 (INCLUDE)
 
          解决方法:
     
               从MySQL 5.7.5开始Boost库是必需的
               下载 mysql-boost-5.7.12.tar.g 在 cmake 指定参数 -DWITH_BOOST=boost/boost_1_59_0/
               或直接cmake指定参数  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory> 系统会下载 boost
 
 
          错误三:
 
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:64 (MESSAGE):
  Curses library not found.  Please install appropriate package,
 
      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:107 (FIND_CURSES)
  cmake/readline.cmake:181 (MYSQL_USE_BUNDLED_EDITLINE)
  CMakeLists.txt:479 (MYSQL_CHECK_EDITLINE)
          
              解决方法:yum install ncurses-devel
 
 
          3)编译安装
 
                    make && make install
 
          4)mysql 命令添加到环境变量中
 
                vi /etc/profile
                source /etc/profile
 
# mysql env
PATH=/usr/local/mysql/bin:$PATH
export PATH
 
 
五 安装 设置mysql 服务    ,并开机自启动
 
   chown -R mysql.mysql /usr/local/mysql/
 
   cp support-files/mysql.server /etc/init.d/mysqld
 
   chmod 755 /etc/init.d/mysqld
 
    #增加一个mysqld 服务器
    chkconfig --add mysqld
 
   #设置MySQL服务器在运行级别2345上运行
    chkconfig  mysql on
     
chkconfig --list
 
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.
 
      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.
 
mysqld             0:off    1:off    2:on    3:on    4:on    5:on    6:off
 
 
六 安装数据库    
 
    cd /usr/local/mysql
 
    mkdir -p /data/mysql_data
 
    ./bin/mysql_install_db --user=mysql --datadir=/data/mysql_data
 
    echo $?
 
七 创建配置文件
 
    vim /etc/my.cnf(注:以下配置仅供参考)
 
[mysqld]
datadir=/data/mysql_data
socket=/usr/local/mysql/mysql.sock
user=mysql
 
symbolic-links=0
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
key_buffer_size = 8144M
table_cache_size = 1024M
read_buffer_size = 128M
sort_buffer_size = 32M
query_cache_size = 100M
thread_cache_size = 16
thread_concurrency = 32
max_heap_table_size = 400M
tmp_table_size = 400M
max_connections = 500
# The end
#
 
说明:
 
八 启动数据库
     
     /etc/init.d/mysqld start
 
     或
 
     service mysqld start
 
[root@f823a1ce09a8 local]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@f823a1ce09a8 local]# ps -aux | grep mysql
root     20149  0.0  0.1  11772  2772 ?        S    08:13   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql_data --pid-file=/data/mysql_data/f823a1ce09a8.pid
mysql    20439  0.7  9.8 2465512 201608 ?      Sl   08:13   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql_data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/data/mysql_data/f823a1ce09a8.pid --socket=/usr/local/mysql/mysql.sock
root     20468  0.0  0.0   9044   804 ?        S+   08:13   0:00 grep --color=auto mysql
 
九 登陆数据库
 
     mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要登录
 
查看root 密码
 
[root@f823a1ce09a8 mysql_data]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2016-05-09 08:38:54
ia8GCm:d>(bo
 
     mysql -u root -p 登陆
 
十 修改权限
     1)修改密码
 
修改root密码:
     mysqladmin -u root -p -h CentOS-StandAlone password 'newpassword'
或 登陆数据库 mysql 数据库
    update user set password=password('newpassword') where user='root'
 
 2)授权
 
#完全授权,密码:123456
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
 flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
#允许8.8.8.1上的访问,密码:123456
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'8.8.8.1' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
 flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
附录:
 
     (一)Mysql有两种连接方式: 
          (1),TCP/IP 
          (2),socket 
          对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。 
          例如你无须定义连接host的具体IP得,只要为空或localhost就可以。 
          在此种情况下,即使你改变mysql的外部port也是一样可能正常连接。 
          因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的。已经根据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。
 
     (二) chkconfig 
          用于管理/etc/init.d 下的服务脚本
 
            --add name
                   增加一个新的服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
 
            --del name
                   删除一个服务
 
            --list name
                  显示服务的情况
 
           --level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕
 
          注:运行级别:
                  等级0表示:表示关机 
             等级1表示:单用户模式 
  等级2表示:无网络连接的多用户命令行模式 
  等级3表示:有网络连接的多用户命令行模式 
  等级4表示:不可用 
  等级5表示:带图形界面的多用户模式 

 

  等级6表示:重新启动
分享到:
评论

相关推荐

    mysql5.7.12官方手册EN

    根据提供的文件信息,我们可以提取并总结出MySQL 5.7.12官方手册中的关键知识点。这份手册不仅涵盖了MySQL 5.7版本的功能介绍,还包括了基于NDB 7.5版本的MySQL Cluster的相关信息。下面将从不同角度对这些知识点...

    MYSQL 5.7.12.zip

    MySQL (数据库服务器)是一款小型关联式数据库管理系统,MySQL (数据库服务器)的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常捧的数据库。MySQL (数据库服务器)在世界上是最流行的数据库语言。...

    Linux源码安装MySQL5.7.12资源包

    在Linux(我用的CentOS6.8)上用源码安装MySQL5.7.12需要的所有依赖都在(除gcc和gcc_c++外,一般系统都带)包括ncurses-devel-5.7-4.20090207.el6.x86_64、libarchive-2.8.3-7.el6_8.x86_64、cmake-2.8.12.2-4.el6.x86_...

    mysql_5.7.12.tar.gz

    4. **编译与安装**: 进入解压后的目录,运行`./configure`进行配置,然后用`make`编译源代码,最后使用`sudo make install`来安装MySQL。 5. **初始化数据库**: 安装完成后,执行`sudo /usr/local/mysql/bin/mysqld...

    MYSQL5.7.12安装程序以及一些对应的软件

    在这个压缩包中,您将找到安装MySQL 5.7.12所需的所有组件,以及可能与之相关的其他软件,这可能是为了辅助数据库的配置、管理和开发。 首先,让我们详细了解一下MySQL 5.7.12的一些关键特性: 1. **性能提升**:...

    mysql 5.7.12 winx64安装配置方法图文教程

    配置文件一般命名为my.ini,位于MySQL安装目录下的bin文件夹中。在配置文件中,可以设置包括端口号、数据库文件存放路径、临时文件存放路径、错误日志文件路径等关键参数。例如,配置文件中指定了端口为3306,基于...

    mysql5.7.12数据库

    通过“mysql-installer-web-community-5.7.12.0.msi”这个文件,用户可以便捷地在 Windows 上安装 MySQL 5.7.12 社区版。安装过程采用向导式操作,使得即便是数据库新手也能轻松完成安装。安装程序会引导用户设置...

    centos 7.1 mysql5.7.12常见问题解决

    "centos 7.1 mysql5.7.12常见问题解决" 标题:"centos 7.1 mysql5.7.12常见问题解决",该标题指向了 Centos 7.1 操作系统下使用 MySQL 5.7.12 版本时可能遇到的问题和解决方法。 描述:"centos 7.1.1503 系统下使用 ...

    MySQL Server 5.7.12安装教程.docx

    MySQL Server 5.7.12 安装教程 本教程旨在指导用户安装 MySQL Server 5.7.12,包括安装前的准备、安装过程、安装后的配置和基本操作。 MySQL 简介 MySQL 是一个开源的关系型数据库管理系统,目前是最流行的数据库...

    MySQLServer5.7.12安装教程[汇编].pdf

    MySQL Server 5.7.12 是一个流行的开源关系型数据库管理系统,被广泛应用于软件开发领域。本安装教程将引导你逐步完成在Windows操作系统上的安装过程。 **第一步**:启动安装程序。双击下载的安装文件 "mysql-...

    Linux环境mysql5.7.12安装教程

    【Linux环境MySQL5.7.12安装教程】 在Linux环境下安装MySQL 5.7.12是一项重要的任务,尤其对于需要在服务器上部署数据库应用的开发者和管理员来说。本教程将详细介绍如何在Linux(本例中是Ubuntu Kylin 14.04.1 64...

    QT5.12.10连接mysql-5.7.12编译好的库,及连接示例代码

    在本案例中,您已经拥有一个编译好的MySQL库,现在我们将探讨如何在QT5.12.10中连接到MySQL 5.7.12,并提供连接示例代码。 首先,确保您的开发环境中已安装了以下组件: 1. QT5.12.10:包含必要的开发库和工具。 2....

    docker镜像 mysql 5.7.12

    使用busybox环境和mysql5.7.12封装的docker镜像 docker load -i mysql_5.7.12-image.tar.gz 导入后可以直接使用

    mysql-5.7.12-winx64.zip

    MySQL(官方发音为/maɪ ˌɛskjuːˈɛl/“My S-Q-L”,但也经常被错误读作/maɪ ˈsiːkwəl/“My Sequel”)原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统...

    MySQL Server 5.7.12安装

    ### MySQL Server 5.7.12 安装教程及基本命令详解 #### 一、MySQL Server 5.7.12 安装步骤 **第一步:启动安装程序** - 双击`mysql-installer-community-5.7.12.0.msi`文件开始MySQL的安装过程。 **第二步:选择...

    CentOS6.5下YUM安装最新MySQL5.7.12(王三旗亲自整理,最简单明了)

    CentOS6.5下YUM安装最新MySQL5.7.12

    MYSQL5.7.12

    资源名称:MYSQL 5.7.12工具简介:MySQL (数据库服务器)是一款小型关联式数据库管理系统,MySQL (数据库服务器)的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常捧的数据库。MySQL (数据库服务器...

    mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz(安装步骤).txt

    mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz(安装步骤).txt 截至2016.04.20最新新mysql for linux的安装步骤。 glibc版本是不需要make的。 所以选择这个安装包不需要任何依赖包,包你100安装成功

Global site tag (gtag.js) - Google Analytics