一、MySQL5.7主要特性:
原生架构支持centos7的Systemd
(1.)更好的性能:对于多核的CPU、固态硬盘、锁有着更好的优化、更好的innoDB存储引擎。
(2.)更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也
可以选择使用MySQL数据库。
(3.)新增sys库:以后这会是DBA访问最频繁的库
(4.)更好的优化器:优化器的代码重构的意义将在5.7版本及以后的版本中带来巨大的改进
oracle官方正在解决MySQL之前最大的难题,原生JSON类型的支持
注意:JSON(JavaScript object Notation)是一种轻量级的数据交换格式。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯
(包括C、C++、C#、Java、JavaScript、Perl、Python等)。
这些特性使JSON成为理想的数据交换语言。易于阅读和编写,同时易于机器解析
和生成(一般用于提升网络传输速率)。
JSON语法是JavaScript对象表示语法的子集数据在键值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
用JSON编写的文件,可以代替.yaml格式的文件。(dockerkubernetes中的用的到,创建RC)。
注:mysql-5.6.3 已经支持了多线程的主从复制
二、源码编译安装MySQL5.7
1.系统环境:centos7.2x64位
因为centos7.2默认安装了mariadb-libs,所以先要卸载掉。
2.安装相关依赖包
cmake:由于从MySQL5.5版本开始弃用了常规的configure编译方法,所以需要CMAKE编译器,用
于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。
Boot: 从Mysql5.7.5开始Boost库是必需的,MySQL源码中用到了C++的Boost库,要求必须安
装boost1.59.0或以上版本。
GCC是Linux下的C语言编译工具,MySQL源码编译完全由C和C++编写,要求必须安装GCC
bison:Linux下C/C++语法分析器
ncurses:字符终端处理库
下载所需软件:
下载mysql-5.7.13.tar.gz
下载Boost_1_59_0.tar.gz
3.安装cmake及相关下载好的软件
1.安装cmake:
cmake -version 查看版本:
2.安装ncurses:
3.安装bison:
4.安装boost:
因为boost是一个提前编译好的软件所以这里无需在进行配置和编译,所以直接移动到指定的目录即可直接使用。
4.创建MySQL用户和用户组及目录
新建MySQL组合MySQL用户,禁止登录shell ,-r选项:代表系统用户
5.编译安装MySQL5.7.18
(1.)解压mysql源码包:
(2.)执行cmake命令前进行编译配置:
注意:在mysql5.5-5.6版本中是不需要加上-DWITH_SYSTEMD=1参数,否则会报错!!!
(3.)开始编译安装:
配置解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql :mysql安装的根目录
-DMYSQL_DATADIR=/usr/local/mysql/data :mysql数据库文件存放目录
-DSYSCONFDIR=/etc :mysql配置文件所在目录
-DWITH_MYISAM_STORAGE_ENGINE=1 :添加MYISAM引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE=1 :添加InnoDB引擎支持
-DWITH_ARCHIVE_STORAGE_ENGINE=1 :添加ARCHIVE引擎支持
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock :指定mysql.sock位置
-DWITH_PARTITION_STORAGE_ENGINE=1 :安装支持数据库分区
-DEXTRA_CHARSETS=all :使mysql支持所有的扩展字符
-DDEFAULT_CHARSET=utf8 :设置mysql的默认字符集为utf-8
-DDEFAULT_COLLATION=utf8_general_ci :设置默认字符集校对规则
-DWITH_SYSTEMD=1 :可以使用systemd控制mysql服务
-DWITH_BOOST=/usr/local/boost :指向boost库所在目录
注意:更多参数执行: #cmake . -LH
为了加快编译速度可以按照下面的方式去编译安装:
make -j $(grep processor /proc/cpuinfo | wc -l )
-j 参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译。
注意:若要重新运行cmake配置,需要删除CMakeCache.txt文件
#make clean
#rm -f CMakeCache.txt
6.优化MySQL的执行路径
7.设置权限并初始化MySQL系统授权表
注意: 以上root初始化操作时要加--initialize参数,生成一个随机密码(注意保存密码登录时使用)
MySQL5.7.6之前的版本执行这个脚本进行初始化系统数据库:
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
有密码的初始化:
#bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
无密码的初始化:
#/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
8.创建配置文件
vim /etc/my.cnf
以上服务器启动失败,查看错误日志文件
在mysqld.service,把默认的pid文件指定到了/var/run/mysqld目录,而并没有事先建立该目录,因此要手动建立该目录并把权限赋给MySQL用户。(这种方法是临时的,因为/var/run/下的目录关机就没有了)。
或者修改/usr/lib/system/system/mysqld.service:
#systemctl daemon-reload