导读 MysqL 5.7 版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复。

MysqL 5.7主要特性:

原生支持Systemd
更好的性能:对于多核cpu、固态硬盘、锁有着更好的优化
更好的InnoDB存储引擎
更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MysqL数据库。此外,GTID在线平滑升级也变得可能
更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MysqL之前最大的难题
原生JSON类型的支持
更好的地理信息服务支持:InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性
新增sys库:以后这会是DBA访问最频繁的库
MysqL 5.7已经作为数据库可选项添加到 OneinStack -- lnmp 安装工具中

安装依赖包

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

下载MysqL源码包

源码包有两种版本 :
MysqL-5.7.11.tar.gz 不带 boost库 ,需要自行下载。

MysqL-boost-5.7.11.tar.gz 自带 boost库,在解压后的根目录,推荐下载。

wget http://cdn.MysqL.com/Downloads/MysqL-5.7/MysqL-boost-5.7.11.tar.gz

curl -O http://cdn.MysqL.com/Downloads/MysqL-5.7/MysqL-boost-5.7.11.tar.gz

tar -zxf MysqL-boost-5.7.11.tar.gz

cd MysqL-5.7.11

编译

生成makefile

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL \
-DMysqL_DATADIR=/usr/local/MysqL/data \
-DSYSconfdIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DMysqL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \ [字符集]
-DDEFAULT_COLLATION=utf8_general_ci \ [排序规则 必须有,不然初始化数据库困难]
-DDOWNLOAD_BOOST=1 \ [从MysqL 5.7.5开始Boost库是必需的]
-DWITH_BOOST=/root/MysqL-5.7.11/boost \
-DWITH_SYstemD=1 [支持Systemd]
加上-DWITH_SYstemD=1可以使用systemd控制MysqL服务,默认是不开启systemd的。

然后

make -j 2 && make install

MysqL将会安装到/usr/local/MysqL路径
慢慢等……

配置MysqL

添加MysqL用户和组

groupadd MysqL

useradd -g MysqL -s /sbin/nologin MysqL

修改/usr/local/MysqL权限

chown -R MysqL:MysqL /usr/local/MysqL

创建 MysqL PID 默认目录

在 MysqLd.service ,把默认的pid文件指定到了 /var/run/MysqLd/ 目录,而并没有事先建立该目录,因此要手动建立该目录并把权限赋给 MysqL 用户。

mkdir -p /var/run/MysqLd
chown MysqL:MysqL /var/run/MysqLd

MysqL 三个运行文件默认位置

log : /var/log/MysqLd.log
pid : /var/run/MysqLd/MysqLd.pid
sock : /tmp/MysqL.sock

拷贝 my.cnf 和 MysqLd.service

cp support-files/my-default.cnf /etc/my.cnf

MysqL 5.7 默认将 MysqLd.service (/usr/local/MysqL/)文件安装到了 MysqL 安装目录下的 usr/lib/systemd/system/,将 MysqLd.service 复制到/usr/lib/systemd/system/目录下

[root@localhost]/usr/local/MysqL#cp usr/lib/systemd/system/MysqLd.service /usr/lib/systemd/system

添加环境变量

-- 编辑/etc/profile文件在最后添加如下两行 --

vim /etc/profile

PATH=/usr/local/MysqL/bin:$PATH
export PATH

source /etc/profile

初始化 无密码 MysqL 数据库

bin/MysqLd --initialize-insecure --user=MysqL --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data
bin/MysqL_ssl_rsa_setup

出现下列内容,初始化成功
2016-02-22T03:56:27.254356Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

-–initialize 会生成一个随机密码(保存在~/.MysqL_secret),而 -–initialize-insecure 不会生成密码,在MysqL安全配置向导MysqL_secure_installation设置密码时,可自由选择 MysqL 密码等级。

-–datadir目标目录下不能有数据文件。

之前版本初始化程序 MysqL_install_db 是在 /usr/local/MysqL/script 下,并会在将来被移除,转而使用MysqLd替代 已被废弃 MysqL5.7 放在了 /usr/local/MysqL/bin 目录下。

启动 MysqL

systemctl start MysqLd.service

systemctl status MysqLd.service

运行 MysqL安全配置向导MysqL_secure_installation 设置密码,MysqL 服务启动后才可执行

a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效

[root@localhost MysqL]# MysqL_secure_installation

Securing the MysqL server deployment.

Connecting to MysqL using a blank password. [使用空密码连接到MysqL]

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?[VALIDATE密码插件可以被用来测试密码
并提高安全性。你是否想设置VALIDATE密码插件?]

Press y|Y for Yes,any other key for No: y

There are three levels of password validation policy: [有三种级别的密码验证策略:]

LOW Length >= 8
MEDIUM Length >= 8,numeric,mixed case,and special characters
STRONG Length >= 8,special characters and dictionary file
[最小长度> = 8
中等长度> = 8,数字,大小写混合和特殊字符
最长长度> = 8,数字,混合大小写,特殊字符和字典文件]

Please enter 0 = LOW,1 = MEDIUM and 2 = STRONG: 0 [请输入0 =低,1 =中2 =强:0]
Please set the password for root here. [请在这里设置root用户的​​密码。]

New password: [新密码:]

Re-enter new password: [重新输入新密码:]

Estimated strength of the password: 25 [密码的估计强度:25]
Do you wish to continue with the password provided?(Press y|Y for Yes,any other key for No) : y [您是否希望继续与提供的密码(按y | Y表示是,因为没有任何其他键):Y?]
... Failed! Error: Your password does not satisfy the current policy requirements [ ... 失败!错误:您的密码不符合当前的要求]

New password:

Re-enter new password:

Estimated strength of the password: 50 [密码的估计强度:50]
Do you wish to continue with the password provided?(Press y|Y for Yes,any other key for No) : y
By default,a MysqL installation has an anonymous user,
allowing anyone to log into MysqL without having to have
a user account created for them. This is intended only for
testing,and to make the installation go a bit smoother.
You should remove them before moving into a production
environment. [默认情况下,MysqL安装有一个匿名用户,
允许任何人登录到MysqL.]

Remove anonymous users? (Press y|Y for Yes,any other key for No) : y [删除匿名用户?]
Success. [成功。]

normally,root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network. [通常情况下,Root 只允许其进行'localhost'(本地) 连接
。]

disallow root login remotely? (Press y|Y for Yes,any other key for No) : n [禁止远程root登录?]

... skipping. [...跳过。]
By default,MysqL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment. [默认情况下,MysqL带有一个名为“测试”数据库,任何人都可以访问。这也是仅用于测试,并且应该移动到生产之前被删除环境。]

Remove test database and access to it? (Press y|Y for Yes,any other key for No) : n [删除测试数据库和访问权限?]

... skipping. [ ...跳过。]
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately. [刷新授权表以确保所有的变化取得将立即生效。]

Reload privilege tables Now? (Press y|Y for Yes,any other key for No) : [现在刷新授权表?]

... skipping.
All done! [全部完成!]

开放 Root 远程连接权限

MysqL -u root -p
MysqL> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; [password 为远程连接密码]
MysqL>FLUSH PRIVILEGES; [刷新权限]

http://www.linuxprobe.com/centos7-2-systemd-MysqL5-7-11.html

Centos7.2 Systemd 方式编译 Mysql5.7.11的更多相关文章

  1. .dylib在Debug中链接,在XCode中找不到适用于iPhone的版本

    所以我已经将libxml2.2.dylib库包含在我的iPhoneXCode项目中,以创建一些Xml和XPath解析实用程序.当我编译并运行在模拟器和设备的调试模式时,我没有问题,但是,当我切换到发布模式我得到…

  2. 在编译的iOS应用程序(IPA)中加密内容

    由于IPA结构只是一个压缩文件,包含编译代码媒体内容,如图像&音频,我如何保护内容免受别人的窃取?是否有加密可以添加到IPA?

  3. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  4. ios – Swift 4向后兼容性

    一起使用.有没有办法在两个版本的Xcode中使这个工作?Swift4是否应该向后兼容?

  5. Swift与OC混合编译

    SWift调用OC新建swift文件此时系统自动生成-Bridging-Header.h文件并且TARGETS->BuildSettings->Objective-CBridgingHeader(搜索bridg)选项中会自动填入以上头文件的路径在-Bridging-Header.h中#import要调用的OC对象头文件OC调用Swift在OC文件中#import“

  6. Swift教程01-使用switfc终端命令编译运行swift程序

    应公司的要求,要我研究swift语言,然后给大家进行swift技术培训,买了4,5本swift相关的书籍就开始研究了.今天来介绍一下,swift相关的终端的命令.1.首先我们在桌面上建一个swift文件夹用来存放.swift源文件,打开终端输入cd加空格拖拽文件夹到终端(使用命令ls,cd目录也是等效)3.使用vi命令创建一个HelloWorld.swift源文件进入swift文件夹后,然后使用如

  7. 驳狗屎文 "我为什么放弃Go语言"

    开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。两年之后,2011年底,Go语言发布1.0的计划被提上日程,相关的报道又多起来,我再次关注它,重新评估之后决定深入参与Go语言。外加Go语言社区里的某些人,其中也包括Google公司负责开发Go语言的某些人,其态度、言行,让我极度厌恶,促使我决绝地离弃Go语言。第1节:我为什么对Go语言不爽?

  8. Swift语法特点

    从它的语法中能看到Ojective-CJavaScriptC#Python等语言的影子swift借鉴了以上几门语言的特点我们可以从swift身上看到这几种语言的影子同时还具备了编译型语言额高能性和脚本语言的灵活交互性OC-C#都是编译型的语言也就是我们写完代码要保证每一行代码编译通过才能跑起来这叫编译型语言一般编译型的语言性能比较高能做的事情比较强大比如说OC能开发手机程序C#能开发服务器程序脚本

  9. Swift思量与初探:我需要学习Swift吗?

    最近,除了N多的基于Swift的服务端开发框架,笔者不由深思,到底该这么评价Swift呢?前两点在Swift的语法和语言特性中已经表现得淋漓尽致:像是尾随闭包,枚举关联值,可选值和强制的类型安全等都是Swift显而易见的优点。综上所述,Swift拥有着被广泛使用以及当做第一学习语言的潜质。Swift在语法层次上会更加高级,并且Swift并没有使用GC机制,因此可以与C更好地相兼容。Swift中的注释与C语言的注释非常相似。

  10. Swift 2 throws 全解析 - 从原理到实践

    Swift2错误处理简介throws关键字和异常处理机制是Swift2中新加入的重要特性。为了解决这个问题,Swift2中在编译器层级就对throws进行了限定。在Swift开源之前,将源码编译到各个阶段是探索Swift原理和实现方式的重要方式。事实上NSError在Swift2中也实现了ErrorType接口,它简单地返回错误的域和错误代码信息,这是Swift1到2的错误处理相关API转换的兼容性的保证。throws的一些实践异步操作中的异常处理带有throw的方法现在只能工作在同步API中,这受限于异

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部