前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL5.6&5.7编译安装

MYSQL5.6&5.7编译安装

作者头像
MySQL轻松学
发布2018-03-09 15:56:58
1.1K0
发布2018-03-09 15:56:58
举报
文章被收录于专栏:MYSQL轻松学MYSQL轻松学

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

  • CMake编译工具

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

代码语言:javascript
复制
[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

代码语言:javascript
复制
[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/

代码语言:javascript
复制
[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
  • 初始化目录
代码语言:javascript
复制
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需要)
代码语言:javascript
复制
yum install ncurses-devel
  • 编译安装Mysql
代码语言:javascript
复制
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
代码语言:javascript
复制
vi /home/servers/mysql/etc/my.cnf
  • 添加环境变量
代码语言:javascript
复制
export PATH=$PATH:$HOME/bin:/home/servers/mysql/bin
  • 初始化库(Mysql5.6)
代码语言:javascript
复制
/home/servers/mysql/scripts/mysql_install_db --user=mysql --basedir=/home/servers/mysql --datadir=/home/data/mysql/data
  • 启动mysql
代码语言:javascript
复制
/home/servers/mysql/bin/mysqld_safe --defaults-file=/home/servers/mysql/etc/my.cnf &
  • 登录并修改用户密码
代码语言:javascript
复制
/home/servers/mysql/bin/mysql -uroot 
  • Mysql5.7安装不同

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

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

修改初始化密码&格式化

代码语言:javascript
复制
/home/servers/mysql/bin/mysql_secure_installation 
/home/servers/mysql/bin/mysqld --initialize --initial-insecure --console

启动同上

  • 5.7后my.cnf增加:
代码语言:javascript
复制
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

修改:

代码语言:javascript
复制
binlog_format=row   (原 mixed)
join_buffer_size=128M (原256K)
max_allowed_packet=1024M(原16M)
sort_buffer_size=64M (原128K)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MYSQL轻松学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档