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 条评论
登录 后参与评论

相关文章

来自专栏从零开始的linux

搭建Hadoop集群

环境说明 redhat6.7 hadoop2.7 角色 主机名 IP master node0...

3266
来自专栏乐沙弥的世界

Linux 下MySQL源码安装完整版

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

672
来自专栏运维前线

CentOS7 安装并使用SQL Server

CentOS7 安装并使用SQL Server Linux 上的 SQL Server 安装指南 参考:https://docs.microsoft.com/z...

2366
来自专栏不想当开发的产品不是好测试

centos6.6 下安装mysql

背景 没啥好说的,就是需要搭建自己的测试数据库跟研发的数据隔离开来,需要怼mysql 步骤 1. 确认线上mysql的版本 SELECT VERSION(); ...

2055
来自专栏跟着阿笨一起玩NET

SQL Server复制需要有实际的服务器名称才能连接到服务器

SQL Server 2005/2008 配置 Transactional  Replication 过程中,出现如下异常信息。

801
来自专栏王磊的博客

T-Sql备份还原数据库

代码如下: -- 备份数据库 BACKUP DATABASE 数据库名称 TO DISK = '物理存储位置' WITH FORMAT,CHECKSUM ...

2878
来自专栏圣杰的专栏

.NET Core+MySql+Nginx 容器化部署

1. 引言 上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习,完成ASP.NET Core + MySql + Nginx的容...

3808
来自专栏Laoqi's Linux运维专列

Ansible 常用模块详细介绍

903
来自专栏雨过天晴

原 MYSQL单机多实例

2116
来自专栏乐沙弥的世界

MySQL [ERROR] Table 'mysql.user' doesn't exist

    一次源码新装的mysql,由于没有复制my-default.cnf到/etc/my.cnf位置,在启动mysql的时候碰到了无法打开mysql.user...

1023

扫码关注云+社区