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

相关文章

来自专栏猿人谷

Oracle RAC基本维护指令

所有实例和服务的状态 $ srvctl status database -d orcl Instance orcl1 is running on node l...

2127
来自专栏FreeBuf

新手指南:DVWA-1.9全级别教程之SQL Injection

目前,最新的DVWA已经更新到1.9版本(点击原文查看链接),而网上的教程大多停留在旧版本,且没有针对DVWA high级别的教程,因此萌发了一个撰写新手教程的...

3528
来自专栏乐沙弥的世界

RMAN catalog 的创建和使用

在存储恢复目录的数据库创建表空间用于存储恢复目录schema及恢复目录数据(本文使用已经创建好的数据库catadb来存储恢复目录)

852
来自专栏杨建荣的学习笔记

MySQL迁移文件的小问题(r8笔记第18天)

线上有一台服务器上,里面有一个mysql数据库服务,其实库也很小,就几个G,一直以来是保留了多天的备份集,但是因为业务的关系,这个库其实只有一些 基本的数据查询...

3687
来自专栏北京马哥教育

没遇到过这十个MySQL 数据库经典错误,你一定不是个好工程师

笔者在刚开始学习数据库的时候,没少走弯路。经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解决问题的办法。跟无头苍蝇一样,会不加思索地把错...

5217
来自专栏雨过天晴

原 在已安装Apache和MySQL的Ub

1383
来自专栏Netkiller

Linux 系统与数据库安全

目录 1. 帐号安全 1.1. Shell 安全 1.2. .history 文件 2. 临时文件安全 3. 其他安全问题 4. 防火墙配置 5. 数据库安全 ...

3655
来自专栏数据和云

你不可不看的 Oracle RAC 日常基本维护命令

$ srvctl status instance -d orcl -i orcl2

1134
来自专栏xiaoheike

Tomcat生成的session持久化到MySQL

The default Tomcat default session storage mechanism uses temporary files. To sa...

984
来自专栏沃趣科技

ASM 翻译系列第三十三弹:REQUIRED_MIRROR_FREE_MB的含义

原作者:Bane Radulovic 译者: 陈亚军 审核: 魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy....

36110

扫码关注云+社区