博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1-1 二进制/源码/zip安装和升级
阅读量:5173 次
发布时间:2019-06-13

本文共 9178 字,大约阅读时间需要 30 分钟。

MySQL安装和升级

dba_aj@163.com

2018年7月12日星期四


1. 安装包下载

新业务建议使用大版本下最新GA版本

下载二进制安装包

归档历史版本
安装说明

2. 环境配置

  1. 磁盘
    1. 安装好系统后,挂载硬盘作为MySQL数据盘,
    2. 创建挂载点,mkdir /data
    3. 对硬盘格式化挂载到/data/
  2. 配置网络环境
    1. vim /etc/sysconfig/network-scripts/ifcfg-eth0
    2. vim /etc/sysconfig/network
    3. vim /etc/hosts //加入127.0.0.1和主机名的映射
  3. OS参数,执行初始化脚本
    1. bash ./mysql_insall_init.sh
  4. 个人建议的mysql目录规划
    -/data/
    -- base # 软件目录
    -- etc # 配置文件目录
    -- data # 数据目录
    -- log # 日志目录
    --backup # 备份及导出目录

3、二进制安装

dba_aj@163.com

2018年7月12日星期四

# 解压tar -xvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.36-linux-glibc2.5-x86_64/  /data/3306# 新建用户groupadd mysql useradd -r -g mysql -s /bin/false mysql# 配置my.cnf## 创建my.cnf中定义的一些目录**,否则初始化会错误## my.cnf放在 basedir/etc/下,多实例下不混乱## my.cnf 的权限是644,文件默认644# 初始化cd /data/3306/base./scripts/mysql_install_db --defaults-file=/data/3306/etc/my.cnf   --user=mysql   # 5.6 初始化./bin/mysqld  --defaults-file=/data/3306/etc/my.cnf  --initialize-insecure --user=mysql         #5.7 初始化# 安装完成## 数据目录出现ibdata、logfile、mysql库、IS库(5.5没有)、PS库、sys库(5.7有)初始化正常## 否则检查目录权限、my.cnf中对应目录是否创建且有权限、my.cnf中资源系统能分配

4、源码安装

4.1 简介

  1. 优点:
    1. 源码的形式最先发布,及时修复bug
    2. 可以自定义安装位置、构建参数,编译器优化
  2. 缺点:
    1. 安装速度慢
  3. 下载
    1. 标准版本可用作压缩tar文件,Zip存档或RPM软件包,mysql-version.tar.gz,mysql-version.zip或mysql-version.rpm,
    2. 其中version是一个像5.7.6的数字。

4.2 源码安装的要求

MySQL 源码安装需要一些开发工具,无论是标准源码发行版本还是开发源码树。工具取决于安装方法

1、从源安装MySQL需要:

  1. CMake,用做所有平台用来构建框架.CMake下载 。或者配置互联网yum,使用yum install
  2. make工具,建议使用GUN make 3.75或者更高版本。make下载
  3. ANSI c++ 编译器。
  4. GCC 4.4.6 或者更高的版本。
  5. 需要Boost C ++库构建MySQL(但不使用它)。必须安装Boost 1.59.0。下载 。 在cmake中指定。
  6. 足够的可用内存 ,如内存小可能出现“ 内部编译器错误 ”等问题
  7. 如果打算运行测试脚本,需要Perl. 大多数类Unix系统包括Perl。在Windows上,您可以使用ActiveState Perl等版本。

2、解释

  1. gcc(GNU Compiler CollectionGNU编译器套件),它可以编译很多种编程语言(C、C++、Objective-C、Fortran、Java等等)。当你的程序只有一个时,可以用gcc命令编译;当你的程序包有很多源文件,gcc逐个编译容易混乱且工作量大,要用make编译
  2. cmake根据CMakeLists.txt文件生成makefile,
    1. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件。
    2. makefile命令中就包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令。
  3. make工具可以看成是一个智能的批处理工具,make根据makefile中的命令进行编译和链接的。

4.3 源安装的MySQL布局

默认情况下,当您从源代码编译完MySQL后,安装步骤将安装文件在 /usr/local/mysql 下。

安装目录下的组件位置与二进制分发相同。

目录 目录内容
bin 服务器,客户端和实用程序
data 日志文件,数据库
docs MySQL手册信息格式
man Unix手册页
include 包含(标题)文件
lib 图书馆
share 其他支持文件,包括错误消息,示例配置文件,用于数据库安装的SQL

4.4 选项

1、安装布局选项

-DCMAKE_INSTALL_PREFIX=dir_name //安装基础目录-DMYSQL_DATADIR=dir_name //MySQL数据目录的位置-DSYSCONFDIR=dir_name //默认my.cnf选项文件目录,可以设置为basedir/etc/my.cnf-DSYSTEMD_PID_DIR=dir_name //创建PID文件的目录的名称,默认值为 /var/run/mysqld-DMYSQL_UNIX_ADDR=file_name //默认是/tmp/mysql.sock,缺省安装目录-DMYSQL_TCP_PORT=port_num //服务器侦听TCP / IP连接的端口号。默认值为3306。

2、存储引擎选项

  1. InnoDB, MyISAM, MERGE, MEMORY,和 CSV发动机是强制性的(总是编译到服务器)和无需显式安装。
  2. 编译或排除一个存储引擎
    1. 编译一个存储引擎到服务器 ,使用-DWITH_engine_STORAGE_ENGINE=1,例如-DWITH_BLACKHOLE_STORAGE_ENGINE=1
      1. 从构建中排出引擎
      2. version > 5.7.4 ,开始从构建中排出引擎使用 -DWITH_engine_STORAGE_ENGINE=0。例如,-DWITH_FEDERATED_STORAGE_ENGINE=0
        1. version < 5.7.4 ,要从构建中排除存储引擎,请使用-DWITHOUT_engine_STORAGE_ENGINE=1,例如 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1

3、功能选项

-DDEFAULT_CHARSET=charset_name //服务器字符集。默认使用 latin1(cp1252西欧)字符集-DWITH_EXTRA_CHARSETS=name //all:所有字符集。这是默认值,complex:复杂的字符集,none:没有额外的字符集。DDEFAULT_COLLATION=collation_name //服务器排序规则 默认情况下,MySQL使用 latin1_swedish_ci。使用该 SHOW COLLATION语句来确定哪些归类可用于每个字符集。-DENABLED_LOCAL_INFILE=bool        -DWITH_BOOST=path_name //从MySQL 5.7.5开始,需要Boost库构建MySQL。这些CMake选项可以控制库源位置,以及是否自动下载它    -DWITH_BOOST=path_name //指定Boost库目录位置。也可以通过设置BOOST_ROOT或 WITH_BOOST环境变量来指定Boost位置 。从MySQL 5.7.11开始-DWITH_BOOST=system , 允许并指示在标准位置的编译主机上安装了正确版本的Boost。在这种情况下,使用Boost的安装版本,而不是使用MySQL源代码发行版中包含的任何版本。    -DDOWNLOAD_BOOST=bool //指定是否下载Boost源(如果它不在指定位置)。默认是 OFF。    -DDOWNLOAD_BOOST_TIMEOUT=seconds //下载Boost库的超时时间(以秒为单位)。默认值为600秒。

4.5 cmake的重新编译

如果CMake失败,您可能需要通过不同的选项重新运行它。如果重新配置,请注意以下事项:

  1. 如果在之前运行的时候运行CMake,它可能会使用在之前的调用过程中收集到的信息。此信息存储在 CMakeCache.txt。当 CMake启动时,如果信息仍然正确,它会查找该文件并读取其内容(如果存在)。重新配置时,该假设无效
  2. 每次运行CMake时,必须再次运行 make来重新编译。但是,您可能希望先删除旧的对象文件,因为它们是使用不同的配置选项编译的。
shell> make cleanshell>rm CMakeCache.txtrm -r ./CMakeFilesrm ./Makefile

4.6 步骤

系统版本  CentOS release 6.6 (Final)
内核版本     2.6.32-504.el6.x86_64
软件包 boost_1_59_0.tar.gz 、cmake-3.6.0.tar.gz 、mysql-5.7.18.tar.gz
make GNU Make 3.81
cpu Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz  * 4
mem 2885m
# 基础环境搭建yum install gcc gcc-c++ ncurses-devel -y   # cmake 安装,yum自带cmake版本太低tar -xf cmake-3.6.0.tar.gz cd cmake-3.6.0./configuremake make install # 新建用户和组groupadd mysql                              useradd -r -g mysql -s /bin/false mysql# 编译和安装cmake . -DWITH_BOOST=./boost/ -DMYSQL_TCP_PORT=3307 -DCMAKE_INSTALL_PREFIX=/mysql -DMYSQL_DATADIR=/mysql/data -DMYSQL_UNIX_ADDR=/mysql/data/mysql.sock -DSYSCONFDIR=/etc -DWITH_PARTITION_STORAGE_ENGINE=0 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EDITLINE=bundled   #5.7.19cmake3 . -DMYSQL_TCP_PORT=5637 -DCMAKE_INSTALL_PREFIX=/export/servers/mysql5637 -DMYSQL_DATADIR=/export/data/data5637/data -DSYSCONFDIR=/export/servers/mysql5637/etc -DMYSQL_UNIX_ADDR=/export/data/data5637/data/mysql.sock -DSYSTEMD_PID_DIR=/export/data/data5637/data/mysql.pid -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci  #5.6.37# 构架和安装make -j 4 # -j 默认所有核心一起编译,非常危险make install # 安装# 初始化、启动、修改密码。。。略

5、Windows MySQL ZIP版安装

1、环境介绍

  1. 安装机器 window7 64bit 8G内存
  2. mysql版本 mysql-5.7.13-winx64.zip

2、下载地址

5.1 解压

解压位置: D:\work\mysql

5.2 编辑my.cnf

[mysql]default-character-set=utf8[mysqld]server_id = 1basedir = D:\work\mysqldatadir = D:\work\dataport = 3306#loglog-bin     log-error = D:\work\log\error.log             # 使用默认的位置log-error = error.log ,不然net start mysql 不能启动;--console, mysqld将错误消息写入控制台。--log-error如果给出,则被忽略并且没有效果。slow_query_log_file = D:\work\log\slow.log# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

5.2 初始化

win+R 打开运行,输入cmd,召唤cmd窗口,注意需要管理员权限。

C:\Users\aijie>D:D:\>cd work\mysql\binD:\work\mysql\bin>mysqld --initialize-insecure --console

5.3 启动和关闭

D:\work\mysql\bin>start /b mysqld --console -- 后台启动数据库D:\work\mysql\bin>mysql -uroot -hlocalhost -p -- 使用空密码登陆进入mysql修改密码                                       mysql> flush privileges;mysql> set password for root@localhost = password ('123123'); --修改密码D:\work\mysql\bin> mysqladmin.exe -uroot -p123123 shutdown --关闭数据库,然后重新启动

5.4 安装服务

安装服务    C:\Users\aijie>D:    D:\>cd work\mysql\bin    D:\work\mysql\bin>mysqld.exe --install mysqld //mysqld.exe 安装为mysqld服务,运行services.msc 可查看    Service successfully installed.启动服务    D:\work\mysql\bin>net start mysqld    mysqld 服务正在启动 .    mysqld 服务已经启动成功。删除服务    D:\work\mysql\bin>sc delete mysqld    [SC] DeleteService 成功

6、mysql_update 升级

6.1 升级说明

  1. mysql_upgrade升级系统表,
  2. mysql_upgrade检查所有数据库中的所有表与当前版本的MySQL Server的不兼容性。
  3. 从MySQL 5.7.5开始,mysql_upgrade与MySQL服务器直接通信,发送执行升级所需的SQL语句
  4. 仅支持(GA)版本之间升级。
  5. 支持从MySQL 5.6升级到5.7。在升级到下一个版本之前,建议升级到最新版本。
  6. 升级不支持跳过版本。例如,不支持从MySQL 5.5直接升级到5.7。

6.2 升级的准备工作

  1. 备份,其中包含MySQL系统表
  2. 查看发行说明:
  3. MySQL 5.7中已删除的MySQL服务器功能的说明
  4. 如果使用复制,
    1. 从库版本可以高于主库版本;
    2. 升级到MySQL 5.7时,从机必须是MySQL 5.7,然后才能将主机升级到5.7。
  5. 当服务器运行时,不应使用 mysql_upgrade--gtid-mode=ON。
  6. 如果 --gtid-mode=ON ,那么在使用upgrade时候,不推荐使用--write-binlog 选项。
    因为,mysql_upgrade 会更新Myisam引擎的系统表. 而同时更新transction table 和 non-trasaction table 是gtid所不允许的

6.3 升级方法:

支持的升级方法包括:

  1. 就地升级:
    1. 关闭旧的MySQL版本 mysql -u root -p -e "SET GLOBAL innodb_fast_shutdown=0" ; mysqladmin -u root -p shutdown
    2. 用新的MySQL二进制文件或软件包替换旧的MySQL二进制文件或软件包
    3. 在现有的数据目录上重启MySQL,mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
    4. 运行 mysql_upgrade。mysql_upgrade -u root -p
    5. 关闭并重新启动MySQL服务器,以确保对系统表进行的任何更改生效 mysqladmin -u root -p shutdown mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
  2. 逻辑升级:
    1. 涉及使用 mysqldump从旧的MySQL版本导出现有数据
      1. mysqldump -u root -p--add-drop-table --routines --events--all-databases --force > data-for-upgrade.sq
      2. mysqladmin -u root -p shutdown
    2. 安装新的MySQL版本
      1. mysqld --initialize --datadir=/path/to/5.7-datadir
        1. mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir
      2. 将转储文件加载到新的MySQL版本 mysql -u root -p --force < data-for-upgrade.sql
    3. 运行 mysql_upgrade , mysql_upgrade -u root -p
    4. 关闭并重新启动MySQL服务器,以确保对系统表进行的任何更改生效
      1. mysqladmin -u root -p shutdown
      2. mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

7、TCMalloc安装

7.1 使用tcmalloc启动报错

# mysqld_safe &报错:[1] 141066[root@database /etc] bond0 = 10.17.1.109#  mysqld_safe no shared library for --malloc-lib=tcmalloc found in /usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu[1]+  Exit 1                  mysqld_safe

7.2 tcmalloc 安装

1、下载

libunwind :

gperftools-2.1.tar.gz:

yum install gcc gcc-c++  -y

2、libunwind安装

注意

  1. 64位操作系统请先安装 libunwind库,32位操作系统不要安装。
  2. libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。

步骤

wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gztar zxvf libunwind-1.1.tar.gzcd libunwind-1.1./configuremakemake install

三、安装google-perftools

步骤

wget http://pkgs.fedoraproject.org/repo/pkgs/gperftools/gperftools-2.1.tar.gz/5e5a981caf9baa9b4afe90a82dcf9882/gperftools-2.1.tar.gztar zxvf gperftools-2.1.tar.gz cd gperftools-2.1./configuremakemake install

四、启动

find / -iname "libtcmalloc_minimal.so" ln -s /usr/local/lib/libtcmalloc_minimal.so /usr/lib/libtcmalloc_minimal.sovim /etc/my.cnf [mysqld_safe]malloc-lib=tcmalloc

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

附件列表

 

转载于:https://www.cnblogs.com/jesper/p/10948056.html

你可能感兴趣的文章
LeetCode "Integer to English Words"
查看>>
palm qq
查看>>
ADO.NET 学习笔记
查看>>
php设计模式之原型模式
查看>>
关于圆角border-radius
查看>>
站在K2角度审视流程--任务的独占与释放
查看>>
表格布局TableLayout
查看>>
jQuery实现的简单文字提示效果模拟title(转)
查看>>
设计模式:单例
查看>>
单机/伪分布式Hadoop2.4.1安装文档
查看>>
十进制 转换成 二进制
查看>>
钻石操作符
查看>>
[LeetCode 题解]: Minimum Depth of Binary Tree
查看>>
LoadRunner脚本增强
查看>>
python集成安装环境——Anaconda 3.5的安装
查看>>
斐波那契数列
查看>>
function(){} 与(function(){})()的区别
查看>>
作用域
查看>>
yii2高级模板安装
查看>>
ROS学习笔记(六)——创建、编译包
查看>>