MYSQL5.6&5.7编译安装

此文只是帮助刚开始接触MYSQL的同学安装。可能会因为操作系统环境不一样,缺一些包,根据报错修复即可。装好后可以打包成RPM包,方便后续安装。

  • CMake编译工具

下载地址:https://cmake.org/download/

[root@shell ~]# wget -c https://cmake.org/files/v3.9/cmake-3.9.1.tar.gz
[root@shell ~]# tar -zxf cmake-3.2.1.tar.gz && cd cmake-3.9.1
[root@shell cmake-3.2.1]# ./configure 
[root@shell cmake-3.2.1]# make && make install  [默认安装路径是/usr/local/bin]
[root@shell cmake-3.2.1]# cmake --version       [查看cmake版本]
cmake version 3.9.1
  • bison:GNU分析器生成器(Mysql5.7需要)

下载地址:http://ftp.gnu.org/gnu/bison/或

http://www.boost.org/users/history/version_1_58_0.html

[root@shell ~]# wget -c http://git.shell.com/libs/ccpp/bison-3.0.tar.gz
[root@shell ~]# tar -zxf bison-3.0.tar.gz && cd bison-3.0/ && ./configure
[root@shell bison-3.0]# make && make install
  • Boost库:一个开源可移植的C++库,是C++标准化进程的开发引擎之一(Mysql5.7需要)

下载地址:https://dl.bintray.com/boostorg/release/1.64.0/source/

[root@shell ~]# wget -c http://git.shell.com/libs/ccpp/boost_1_57_0.tar.bz2
[root@shell ~]# tar -jxf boost_1_57_0.tar.bz2 && cd boost_1_57_0/
[root@shell boost_1_57_0]# ./bootstrap.sh
[root@shell boost_1_57_0]# ./b2 stage threading=multi link=shared
[root@shell boost_1_57_0]# ./b2 install threading=multi link=shared
  • 初始化目录
useradd mysql
mkdir -p /home/servers/mysql
mkdir -p /home/servers/mysql/etc
mkdir -p /home/data/mysql/data
mkdir -p /home/data/mysql/tmp
mkdir -p /home/data/mysql/log
mkdir -p /home/data/mysql/dumps
mkdir -p /home/data/mysql/undo
chown mysql.mysql -R /home/data/mysql
chown mysql.mysql -R /home/servers/mysql/
  • 可能会需要ncurses-devel (Mysql5.6需要)
yum install ncurses-devel
  • 编译安装Mysql
cmake \
-DCMAKE_INSTALL_PREFIX=/home/servers/mysql \
-DMYSQL_DATADIR=/home/data/mysql/data \
-DSYSCONFDIR=/home/servers/mysql/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/home/data/mysql/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci 
make && make install
  • 修改配置文件my.cnf
vi /home/servers/mysql/etc/my.cnf
  • 添加环境变量
export PATH=$PATH:$HOME/bin:/home/servers/mysql/bin
  • 初始化库(Mysql5.6)
/home/servers/mysql/scripts/mysql_install_db --user=mysql --basedir=/home/servers/mysql --datadir=/home/data/mysql/data
  • 启动mysql
/home/servers/mysql/bin/mysqld_safe --defaults-file=/home/servers/mysql/etc/my.cnf &
  • 登录并修改用户密码
/home/servers/mysql/bin/mysql -uroot 
  • Mysql5.7安装不同

mysql_install_db 已经不再推荐使用了,建议改成 mysqld –initialize 完成实例初始化。如果 datadir 指向的目标目录下已经有数据文件,则会有[ERROR] Aborting;

在初始化时如果加上 –initial-insecure,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号,密码直接写在 log-error 日志文件中;新用户登入后需要立刻修改密码,否则无法继续后续的工作。

修改初始化密码&格式化

/home/servers/mysql/bin/mysql_secure_installation 
/home/servers/mysql/bin/mysqld --initialize --initial-insecure --console

启动同上

  • 5.7后my.cnf增加:
sql_mode = NO_ENGINE_SUBSTITUTION (采用MySQL5.6默认sql_mode)
bulk_insert_buffer_size = 64M (批量插入数据缓存大小,可以有效提高插入效率)
binlog_rows_query_log_events =on (可以查看row格式下的sql语句)
innodb_adaptive_hash_index_parts=128 (避免单个索引导致的锁争用)
show_compatibility_56=on 从库并行复制: (只在从库添加)
slave-parallel-type=LOGICAL_CLOCK (从库并行复制)
slave-parallel-workers=16 (默认为4,可调整,需要stop slave;start slave;)
slave_preserve_commit_order=1(保证主从库并发执行时,事物顺序一致,可以动态修改)
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

修改:

binlog_format=row   (原 mixed)
join_buffer_size=128M (原256K)
max_allowed_packet=1024M(原16M)
sort_buffer_size=64M (原128K)

原文发布于微信公众号 - MYSQL轻松学(learnmysql)

原文发表时间:2017-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何使用GPG加密和签名邮件

GPG或GNU Privacy Guard是一种公钥加密实现。这允许在各方之间安全地传输信息,并且可以用于验证消息的来源是真实的。

943
来自专栏MixLab科技+设计实验室

Nodejs全栈之nginx配置文件

最近倒腾了下阿里云的ECS,用的nodejs+nginx+monogodb; 写一个系列的小tips记录吧。 1、上传文件大小 client_max_body_...

2876
来自专栏http://www.cnblogs.com

centos-6.5安装部署LNMP环境

安装部署前,确保安装了gcc和gcc-c++ 系统信息: [root@zww ~]# cat /etc/redhat-release CentOS releas...

36811
来自专栏程序猿

从0学习MySQL系列(二)安装篇

安装包 ---- https://dev.mysql.com/downloads/ 概述 ---- 本文讲解Windows, Ubuntu, ...

2806
来自专栏北京马哥教育

SSL/TLS原理详解

本文大部分整理自网络,相关文章请见文后参考。 SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰。...

41012
来自专栏blackheart的专栏

[信息安全] 3.HTTPS工作流程

0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具,包括(对称密码,公钥密码,密码散列函数,混合密码系统,消息认证码码,数字签名,伪随机数,数字证书)...

1845
来自专栏java一日一条

详解Https是如何确保安全的?

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单...

391
来自专栏电光石火

AliSQL编译安装

若安装MySQL则 rm /etc/my.cnf卸载,否则忽略 卸载已安装的mysql

21210
来自专栏乐沙弥的世界

Linux 下MySQL源码安装完整版

    在Linux中安装MySQL,通常为RPM与源码方式安装。对于生产环境而言,由于需要自定义诸如安装路径、数据文件位置、字符集以及支持的存储引擎等多以源码...

612
来自专栏Pulsar-V

原 前后端密钥分配验证

1246

扫描关注云+社区