5.7特性:
原生支持Systemd
更好的性能:对于多核cpu,固态硬盘,锁有着更好的优化
更好的innoDB存储引擎
更好的复制功能:复制带来啦数据完全不丢失的方案,传统金融客户也可以选择使用。
新增sys库:会是DBA访问最频繁的库
更好的优化器:将在这个版本及以后的版本中带来巨大改进
oracle官方正解决mysql之前最大的难题原生JSON类型的支持。JSON是一种轻量级的数据交换格式,JSON采用完全独立于语言的文本格式,但是也使用啦类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。JSON语法是javascript对象表示语法的子集。
数据在键值中
数据由逗号分隔
花括号保存对象
方括号保存数组
用JSON编写的文件,可以代替.yaml格式的文件。
系统环境:centos7.2 x86_64
因为centos7.2默认安装了mariadb-libs,所以先要卸载掉
查看是否安装mariadb
rpm -qa | grep mariadb
卸载mariadb
rpm -e --nodeps mariadb-lib
安装依赖包
cmake:由于umysql5.5版本开始弃用了常规的configure编译方法,所以需要cmake编译器,用于设置mysql的编译参数。如:安装目录,数据存放目录,字符编码,排序规则等。http://www.cmake.org/download
boost:从mysql5.7开始boost库是必需的,mysql源码中用到啦C++的boost库。ftp://ftp.gnu.org/ncurses
GCC:是linux下的C语言编译工具,mysql源码编译完全由C++编写
bison:linux下C/C++语法分析器 http://ftp.gnu.org/gnu/bison
ncurses:字符终端处理库
安装cmake及必要的软件
tar zxf cmdke-3.5.6.tar.gz
cd cmake-3.5.2
./bootstrap
gmake && gmake install
查看cmake版本:cmake -versioin
安装ncurses
tar zxf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure && make && make install
安装bison
tar zxf bison-3.0.4.tar.gz
cd bison-3.0.4
./configure && make && make install
安装bootst
tar zxf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
创建mysql用户和用户组及目录
groupadd -r mysql && useradd -r -g mysql -s /sbin/false -M mysql 新建mysql组合mysql用户禁止登录shell
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
cmake -DSMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDFEAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGING=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost && make && make install
配置解释:
-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.sock 指定mysql.sock位置
-DWITH_PRARTITION_STORAGE)ENGINE=1 安装支持数据库分区
-DEXTRA_CHARSETS=all 使mysql支持所有的扩展字符
-DDEFAULT_COLLATION=utf8_general_ci 设置默认字符集校对规则
-DWITH_SYSTEMD=1 可以使用systemd控制mysql服务
-DWITH_BOOST=/usr/local/boost 指向boost库所在目录
为了加快编译速度还可以指定内核数编译安装
make -j $(grep processor /proc/cpuinfo | wc -l) && make install
-j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度,默认为1个线程编译
若要重新运行cmake配置,需要删除CMakeCache.txt文件
make clean
rm -f CMakeCache.txt
优化mysql的执行路径
vim /etc/pofile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
设置权限并初始化mysql系统授权表
cd /usr/local/mysql
chown -R mysql:mysql 更改所有者,属组。
bin/mysql --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
1.以root初始化操作是要加--user=mysql参数,生成一个随机密码。
2.以mysql5.7.6之前的版本执行这个脚本初始化系统数据库
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
创建配置文件
cd /usr/local/mysql/support-files 进入mysql安装目录支持文件目录
cp my-default.cnf /etc/my.cnf 复制模板为新的配置文件
修改文件中配置选项
vim /etc/my.cnf
baseidr = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server id = 1
socket = /usr/local/mysql/mysql.sock
log_errot = /usr/local/mysql/data/mysqld.err
配置mysql自动启动
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl enable mysqld.service
systemctl start mysqld.service
如服务启动失败,可以查看错误日志
tail /usr/local/mysql/data/mysqld.err
在mysqld.service,默认的pid文件指定到啦/var/run/mysqld目录,而并没有事先建立该目录,因此要手动建立该目录并把授权赋给mysql用户。如果想永久有效,就采用修改文件的方法:
mkdir /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld
或者修改/usr/lib/system/system/mysqld.service,修改内容如下:
PIDFile=/usr/local/mysql/mysqld.pid
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS
重启mysql服务:systemctl restart mysqld.service
查看端口号:netstat -anpt | grep mysqld
访问mysql数据库
mysql -u root -h 127.0.0.1 -p -p是初始化时生成的随机密码
本文出自 “11853028” 博客,请务必保留此出处http://tanhong.blog.51cto.com/11853028/1901798
原文:http://tanhong.blog.51cto.com/11853028/1901798