一、mysql5.7的主要特性
(1.)原生支持Systemd
(2.)更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化
(3.)更好的InnoDB存储引擎
(4.)更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以使用mysql数据库
(5.)新增sys库:以后这会是DBA访问最频繁的库
(6.)更好的优化器: 优化器代码重构的意义将在这个版本及以后版本中带来巨大的改进,Oracle官方正在解决mysql之前最大的难题原生JSON类型的支持(JavaScript object Notation)
注:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似c语言家族的习惯(包括c、c++、c#、java、JavaScript、Perl、Python)等。这些特性使json称为理想的数据交换语言。易于阅读和编写,同时也易于机器解析和生成(一般用于提升网路传输速率)。
数据在键值对中
数据由逗号分隔
花括号保存对象
方括号保存数据
二、安装mysql5.7.18
1.系统环境:centos7.2 x86_64
[root@kang ~]# uname -r
3.10.0-327.el7.x86_64
[root@kang ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
因为centos7.2默认安装了mariadb-libs,所有先要卸载掉,如果不卸载的话安装时就会报错。
同时也要避免因安装mariadb-libs已经生成的不必要的文件。
首先查看是否安装mariadb-libs
[root@kang ~]# rpm -qa | grep mariadb-libs
mariadb-libs-5.5.44-2.el7.centos.x86_64
卸载mariadb-libs
[root@kang ~]# rpm -e mariadb-libs --nodeps
2.安装mysql相关依赖包
依赖包的作用:
安装文件准备:
下载cmake-3.5.tar.gz 下载地址:http://www.cmake.org/download/
下载ncurses-5.9.tar.gz 下载地址:ftp://ftp.gnu.org/gnu/ncurese/
下载bison-3.0.4.tar.gz 下载地址:ftp://ftp.gnu.org/gnu/bison/
下载mysql-5.7.18.tar.gz
下载地址:wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz
下载Boost_1_59_0.tar.gz
wget http://nchc.dl.sourceforge.net/project/boost/boosst/1.5.9.0/boost_1_59_0.tar.gz
(1.)安装cmake
[root@kang ~]# tar zxf cmake-3.5.2.tar.gz
[root@kang ~]# cd cmake-3.5.2/
[root@kang cmake-3.5.2]# ./bootstrap
[root@kang cmake-3.5.2]# gmake && gmake install
cmake -version #查看cmake版本信息
(2.)安装ncurses
[root@kang ~]# tar zxf ncurses-5.9.tar.gz
[root@kang ~]# cd ncurses-5.9/
[root@kang ncurses-5.9]# ./configure && make && make install
(3.)安装bison
[root@kang ~]# tar zxf bison-3.0.4.tar.gz
[root@kang ~]# cd bison-3.0.4/
[root@kang bison-3.0.4]# ./configure && make && make install
(4.)安装boost
[root@kang ~]# tar zxf boost_1_59_0.tar.gz
[root@kang ~]# mv boost_1_59_0 /usr/local/boost
(5.)创建mysql用户和组及相关的目录
[root@kang ~]# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql
[root@kang ~]# mkdir /usr/local/mysql
[root@kang ~]# mkdir /usr/local/mysql/data
(6.)编译安装mysql
解压源码包:
[root@kang ~]# tar zxf mysql-5.7.18.tar.gz
[root@kang ~]# cd mysql-5.7.18/
[root@kang mysql-5.7.18]#
执行cmake命令进行编译前的配置:
[root@kang mysql-5.7.18]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost
开始进行编译安装:
[root@kang mysql-5.7.18]# 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/mysql.sock #指定mysql.sock位置
-DWITH_PARTITION_STORAGE_ENGINE=1 #安装支持数据库分区
-DEXTRA_CHARSETS=all #使mysql支持所有的扩展字符
-DDEFAULT_CHARSET=utf8 #设置mysql的默认字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci #设置默认字符集校对规则
-DWITH-SYSTEMD=1 #可以使用systemd控制mysql服务
-DWITH_BOOST=/usr/local/boost #指向boost库所在目录
(7.)设置环境变量
[root@kang ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@kang ~]# source /etc/profile
(8.)给mysql数据目录文件设置相关权限
[root@kang ~]# chown -R mysql:mysql /usr/local/mysql/
[root@kang ~]# cd /usr/local/mysql/
[root@kang mysql]# chmod 755 data/
(9.)初始化mysql数据库
[root@kang mysql]# cd /usr/local/mysql/
[root@kang mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
(10)创建并修改mysql主配置文件
[root@kang ~]# cd /usr/local/mysql/
[root@kang mysql]# vim /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
~
注:重新扫描systemd,扫描新的或有变动的单元
[root@kang mysql]# systemctl daemon-reload
(11.)配置mysql自动启动
[root@kang mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
mysql数据库服务启动失败!
[root@kang mysql]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
查看错误日志文件:
通过上面错误发现,在mysqld.service,把默认的pid文件指定到了/var/run/mysqld/目录,而并没有事先建立该目录,因此要手动建立该目录并把权限赋给mysql用户,这样就不会报错了!!
[root@kang ~]# mkdir /var/run/mysqld
[root@kang ~]# chown -R mysql:mysql /var/run/mysqld/
#systemctl daemon-reload
再次启动mysql服务:
查看端口号:
访问mysql数据库:
mysql -uroot -p YGyr8jr=?,Ta #获取临时密码可以进到data目录,通过这种方式查看 cat mysqld.err | grep password
(12)设置数据库管理员用户root的密码
[root@kang ~]# mysqladmin -uroot -p password 'pwd123'
Enter password:
各位到此mysql-5.7.18的数据库到这就安装完了 !!
希望对你们有所帮助 !!
安装过程有点漫长要耐心等待哦!!