MySQL安装和升级

dba_aj@163.com
2018年7月12日星期四

MySQL安装和升级
1. 安装包下载
2. 环境配置
3、二进制安装
4、源码安装
4.1 简介
4.2 源码安装的要求
4.3 源安装的MySQL布局
4.4 选项
4.5 cmake的重新编译
4.6 步骤
5、Windows MySQL ZIP版安装
5.1 解压
5.2 编辑my.cnf
5.2 初始化
5.3 启动和关闭
5.4 安装服务
6、mysql_update 升级
6.1 升级说明
6.2 升级的准备工作
6.3 升级方法:
7、TCMalloc安装
7.1 使用tcmalloc启动报错
7.2 tcmalloc 安装

TOC


1. 安装包下载

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

下载二进制安装包 https://dev.mysql.com/downloads/mysql/
归档历史版本 https://downloads.mysql.com/archives/community/
安装说明 https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

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.gz
mv 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、源码安装

https://dev.mysql.com/downloads/mysql/

4.1 简介

  1. 优点:

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

4.2 源码安装的要求

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

  1. CMake,用做所有平台用来构建框架.CMake下载 http://www.cmake.org 。或者配置互联网yum,使用yum install
  2. make工具,建议使用GUN make 3.75或者更高版本。make下载http://www.gnu.org/software/make/
  3. ANSI c++ 编译器。
  4. GCC 4.4.6 或者更高的版本。
  5. 需要Boost C ++库构建MySQL(但不使用它)。必须安装Boost 1.59.0。下载http://www.boost.org/ 。 在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 mysqld服务器,客户端和实用程序
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 clean
shell>rm CMakeCache.txt
rm -r ./CMakeFiles
rm ./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
./configure
make
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.19
cmake3 . -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、下载地址

https://downloads.mysql.com/archives/community/

5.1 解压

解压位置: D:\work\mysql

5.2 编辑my.cnf

[mysql]
default-character-set=utf8[mysqld]
server_id = 1
basedir = D:\work\mysql
datadir = D:\work\data
port = 3306#log
log-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\bin
D:\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\binD:\work\mysql\bin>mysqld.exe --install mysqld //mysqld.exe 安装为mysqld服务,运行services.msc 可查看Service successfully installed.
启动服务D:\work\mysql\bin>net start mysqldmysqld 服务正在启动 .mysqld 服务已经启动成功。
删除服务D:\work\mysql\bin>sc delete mysqld[SC] DeleteService 成功


6、mysql_update 升级

http://tencentdba.com/blog/mysql-5-6-upgrade-notice/

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. 查看发行说明:https://dev.mysql.com/doc/relnotes/mysql/5.7/en/
  3. MySQL 5.7中已删除的MySQL服务器功能的说明https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html#mysql-nutshell-removals
  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 :http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz
gperftools-2.1.tar.gz: http://pkgs.fedoraproject.org/repo/pkgs/gperftools/gperftools-2.1.tar.gz/5e5a981caf9baa9b4afe90a82dcf9882/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.gz
tar zxvf libunwind-1.1.tar.gz
cd libunwind-1.1
./configure
make
make install

三、安装google-perftools
步骤

wget http://pkgs.fedoraproject.org/repo/pkgs/gperftools/gperftools-2.1.tar.gz/5e5a981caf9baa9b4afe90a82dcf9882/gperftools-2.1.tar.gz
tar zxvf gperftools-2.1.tar.gz
cd gperftools-2.1
./configure
make
make 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;">

来自为知笔记(Wiz)

附件列表

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

1-1 二进制/源码/zip安装和升级相关推荐

  1. Linux系统中软件的“四”种安装原理详解:源码包安装、RPM二进制安装、YUM在线安装、脚本安装包...

    一.Linux软件包分类 1.1 源码包 优点: 开源,如果有足够的能力,可以修改源代码: 可以自由选择所需的功能: 软件是编译安装,所以更加适合自己的系统,更加稳定.效率更高: 卸载方便: 缺点: ...

  2. 源码包安装Nginx(1.19.1),并配置Nginx,比如:用户认证,防盗链,虚拟主机,SSL等功能

    基础配置 #关闭防火墙 [root@node2 ~]# systemctl stop firewalld [root@node2 ~]# systemctl disable firewalld #清空 ...

  3. 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...

  4. Splunk安装和配置及源码编译安装SVN

    Splunk安装和配置 http://my.oschina.net/tuyang/blog/189159 http://my.oschina.net/longniao/blog/82766 http: ...

  5. 详解LAMP源码编译安装

    实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 LAMP简介 一.准备工作 二.编译安装 Apache 三.编译安装 MyS ...

  6. linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0

    为什么要源码编译安装VIM? 因为我要安装ycm,但是ubuntu14.04仓库vim版本低 教程步骤: 1, 核对系统版本 2, 删除系统自带的vim 3, 编译安装vim 4, 检验vim的安装 ...

  7. ncnn源码编译安装

    ncnn源码编译安装 主要参照以下网址 https://www.codetd.com/article/5379851 零.目前配置 nvidia 3*1080Ti GPU 11G显存 6T内存 lin ...

  8. 【Ubuntu 16】源码包安装Apache Httpd

    源码包安装适合初学者使用. 背景信息 APR (Apache Portable Runtime) Apache可移植运行的任务(APR)项目是创建和维护软件库,为底层平台的具体实现提供了一个可预见的和 ...

  9. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  10. LNMP架构环境搭建之mysql源码编译安装

    Mysql MySQL是一个开源的数据库,在互联网行业应用的很广泛,下面来记录一下从源码编译安装的步骤,当然,MySQL也有其他安装方式,比如,使用yum下载安装rpm包,或者二进制方式安装,如果机器 ...

最新文章

  1. CentOS7 打包RPM 升级OpenSSH8.3
  2. iOS UI_APPEARANCE_SELECTOR
  3. Regulator的下载地址
  4. Maven学习总结(23)——Maven常用命令介绍
  5. Java对MongoDb的CURD操作
  6. 关于单片机大循环结构编程
  7. react16-reactDom.render流程分析
  8. SpringMVC文件上传(三)异常栈处理
  9. 汽车自动驾驶产业链深度研究报告:自动驾驶驶向何方
  10. 工艺过程卡片,工序卡片,工艺卡,刀具卡区别
  11. 黑苹果双系统访问其他磁盘windows/U盘或移动硬盘格式NTFS
  12. 【NIPS挑战赛优胜解】用机器学习判断基因变异所属类别
  13. Onlyoffice不打开文档的情况下下载正在编辑的文档
  14. “一品四境”学JAVA——书籍推荐/路径规划
  15. 用回拨卡打电话来看代理模式+vb.net实现
  16. 前端如何实现一键截图功能?
  17. 微信商户平台企业付款功能
  18. Java语言-用双精度浮点型变量计算一个圆的面积。
  19. 哈尔滨理工计算机考研真题,哈尔滨理工大学考研真题各专业汇总
  20. python应用范围广吗_Python应用范围seo

热门文章

  1. 基于SSM的家庭理财系统
  2. 批量裁剪或延伸的lisp程序_10 行 Python 代码,批量压缩图片 500 张,简直太强大了...
  3. Linux Ubuntu/Centos7 定时备份mysql数据库
  4. Spring JdbcTemplate 调用 Oracle 存储过程 与 Oracle 驱动下载
  5. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第4节 模拟BS服务器案例_1_模拟BS服务器分析...
  6. 简单的树遍历枚举器v0.2-挑战一个程序员到底能多懒- 添加广度优先遍历
  7. idea 项目启动找不到页面问题和run/debug只能启动一个的问题
  8. lc 51. N-Queens
  9. Python_作业_Day_1
  10. mysql8.0.11-1 修改密码报错