dba_aj@163.com
2018年7月12日星期四
1. 安装包下载
新业务建议使用大版本下最新GA版本
下载二进制安装包
归档历史版本 安装说明
2. 环境配置
- 磁盘
- 安装好系统后,挂载硬盘作为MySQL数据盘,
- 创建挂载点,mkdir /data
- 对硬盘格式化挂载到/data/
- 配置网络环境
- vim /etc/sysconfig/network-scripts/ifcfg-eth0
- vim /etc/sysconfig/network
- vim /etc/hosts //加入127.0.0.1和主机名的映射
- OS参数,执行初始化脚本
- bash ./mysql_insall_init.sh
- 个人建议的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 简介
- 优点:
- 源码的形式最先发布,及时修复bug
- 可以自定义安装位置、构建参数,编译器优化
- 缺点:
- 安装速度慢
- 下载
- 标准版本可用作压缩tar文件,Zip存档或RPM软件包,mysql-version.tar.gz,mysql-version.zip或mysql-version.rpm,
- 其中version是一个像5.7.6的数字。
4.2 源码安装的要求
MySQL 源码安装需要一些开发工具,无论是标准源码发行版本还是开发源码树。工具取决于安装方法
1、从源安装MySQL需要:- CMake,用做所有平台用来构建框架.CMake下载 。或者配置互联网yum,使用yum install
- make工具,建议使用GUN make 3.75或者更高版本。make下载
- ANSI c++ 编译器。
- GCC 4.4.6 或者更高的版本。
- 需要Boost C ++库构建MySQL(但不使用它)。必须安装Boost 1.59.0。下载 。 在cmake中指定。
- 足够的可用内存 ,如内存小可能出现“ 内部编译器错误 ”等问题
- 如果打算运行测试脚本,需要Perl. 大多数类Unix系统包括Perl。在Windows上,您可以使用ActiveState Perl等版本。
2、解释
- gcc(GNU Compiler CollectionGNU编译器套件),它可以编译很多种编程语言(C、C++、Objective-C、Fortran、Java等等)。当你的程序只有一个时,可以用gcc命令编译;当你的程序包有很多源文件,gcc逐个编译容易混乱且工作量大,要用make编译
- cmake根据CMakeLists.txt文件生成makefile,
- Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件。
- makefile命令中就包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令。
- 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、存储引擎选项
- InnoDB, MyISAM, MERGE, MEMORY,和 CSV发动机是强制性的(总是编译到服务器)和无需显式安装。
- 编译或排除一个存储引擎
- 编译一个存储引擎到服务器 ,使用-DWITH_engine_STORAGE_ENGINE=1,例如-DWITH_BLACKHOLE_STORAGE_ENGINE=1
- 从构建中排出引擎
- version > 5.7.4 ,开始从构建中排出引擎使用 -DWITH_engine_STORAGE_ENGINE=0。例如,-DWITH_FEDERATED_STORAGE_ENGINE=0
- version < 5.7.4 ,要从构建中排除存储引擎,请使用-DWITHOUT_engine_STORAGE_ENGINE=1,例如 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
- 编译一个存储引擎到服务器 ,使用-DWITH_engine_STORAGE_ENGINE=1,例如-DWITH_BLACKHOLE_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失败,您可能需要通过不同的选项重新运行它。如果重新配置,请注意以下事项:
- 如果在之前运行的时候运行CMake,它可能会使用在之前的调用过程中收集到的信息。此信息存储在 CMakeCache.txt。当 CMake启动时,如果信息仍然正确,它会查找该文件并读取其内容(如果存在)。重新配置时,该假设无效
- 每次运行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、环境介绍
- 安装机器 window7 64bit 8G内存
- 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 升级说明
- mysql_upgrade升级系统表,
- mysql_upgrade检查所有数据库中的所有表与当前版本的MySQL Server的不兼容性。
- 从MySQL 5.7.5开始,mysql_upgrade与MySQL服务器直接通信,发送执行升级所需的SQL语句
- 仅支持(GA)版本之间升级。
- 支持从MySQL 5.6升级到5.7。在升级到下一个版本之前,建议升级到最新版本。
- 升级不支持跳过版本。例如,不支持从MySQL 5.5直接升级到5.7。
6.2 升级的准备工作
- 备份,其中包含MySQL系统表
- 查看发行说明:
- MySQL 5.7中已删除的MySQL服务器功能的说明
- 如果使用复制,
- 从库版本可以高于主库版本;
- 升级到MySQL 5.7时,从机必须是MySQL 5.7,然后才能将主机升级到5.7。
- 当服务器运行时,不应使用 mysql_upgrade--gtid-mode=ON。
- 如果 --gtid-mode=ON ,那么在使用upgrade时候,不推荐使用--write-binlog 选项。 因为,mysql_upgrade 会更新Myisam引擎的系统表. 而同时更新transction table 和 non-trasaction table 是gtid所不允许的
6.3 升级方法:
支持的升级方法包括:
- 就地升级:
- 关闭旧的MySQL版本 mysql -u root -p -e "SET GLOBAL innodb_fast_shutdown=0" ; mysqladmin -u root -p shutdown
- 用新的MySQL二进制文件或软件包替换旧的MySQL二进制文件或软件包
- 在现有的数据目录上重启MySQL,mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
- 运行 mysql_upgrade。mysql_upgrade -u root -p
- 关闭并重新启动MySQL服务器,以确保对系统表进行的任何更改生效 mysqladmin -u root -p shutdown mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
- 逻辑升级:
- 涉及使用 mysqldump从旧的MySQL版本导出现有数据
- mysqldump -u root -p--add-drop-table --routines --events--all-databases --force > data-for-upgrade.sq
- mysqladmin -u root -p shutdown
- 安装新的MySQL版本
- mysqld --initialize --datadir=/path/to/5.7-datadir
- mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir
- 将转储文件加载到新的MySQL版本 mysql -u root -p --force < data-for-upgrade.sql
- mysqld --initialize --datadir=/path/to/5.7-datadir
- 运行 mysql_upgrade , mysql_upgrade -u root -p
- 关闭并重新启动MySQL服务器,以确保对系统表进行的任何更改生效
- mysqladmin -u root -p shutdown
- mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir
- 涉及使用 mysqldump从旧的MySQL版本导出现有数据
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安装
注意
- 64位操作系统请先安装 libunwind库,32位操作系统不要安装。
- 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;">
附件列表