文档章节

Centos7.2 Systemd 方式编译 Mysql5.7.11

linuxprobe16
 linuxprobe16
发布于 2016/11/18 20:35
字数 1759
阅读 34
收藏 0
点赞 0
评论 0
导读 MySQL 5.7 版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复。

Centos7.2 Systemd 方式编译 Mysql5.7.11Centos7.2 Systemd 方式编译 Mysql5.7.11

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, numeric, mixed case, 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

© 著作权归作者所有

共有 人打赏支持
linuxprobe16
粉丝 8
博文 696
码字总数 133617
作品 0
河东
centos7.2安装Mysql5.7.13

centos7.2安装mysql5.7.13 一、MySQL 5.7主要特性: 原生支持Systemd 更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化 更好的InnoDB存储引擎 更为健壮的复制功能:复制带来了数据完全不...

常亚亚 ⋅ 2017/06/02 ⋅ 0

centos7.2安装mysql5.7.13

一、MySQL5.7主要特性: 原生支持Systemd 更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化 更好的InnoDB存储引擎 更为健壮的复制功能:复制带来了数据完全不丢失的方案 mysql-5.6.3已经...

FJCA ⋅ 2017/02/28 ⋅ 0

centos7.2 安装 mysql5.7.13&&加密(ssl)实现mysql数据库的主从复制

centos7.2安装 mysql5.7.13&&加密(ssl)实现mysql数据库的主从复制 防伪码:生命不在长而在于好,只要每一次尽力的演示,都值得鼓励与喝彩。 一、MySQL 5.7 主要特性: 原生支持 Systemd 更好...

何小帅 ⋅ 2017/01/07 ⋅ 0

Mariadb配置文件不生效最大连接数只能为214的解决办法

现象描述 Centos7.2系统上安装10.1.17版本的MariaDB 启动服务后。登陆mariadb数据库,发现最大连接数为214,而且修改/etc/my.cnf配置文件,只要maxconnections的值超过214,该库的最大连接数...

哓竹 ⋅ 2016/10/19 ⋅ 0

虚拟机安装Centos7网卡无法启动

虚拟机安装Centos7网卡无法启动 一、错误背景 1、使用VMware安装的centos7.2虚拟机,开机突然不能上网了,报错如下: 错误提示: 执行:#systemctlrestart network.service Restarting netw...

火头一号 ⋅ 2017/11/18 ⋅ 0

CentOS7安装MySQL5.7数据库以及配置

一、MySQL5.7主要特性: 原生架构支持centos7的Systemd (1.)更好的性能:对于多核的CPU、固态硬盘、锁有着更好的优化、更好的innoDB存储引擎。 (2.)更为健壮的复制功能:复制带来了数据完...

薄凉小伙 ⋅ 2017/06/03 ⋅ 0

小试牛刀之Kolla单节点部署

写在前面的话,笔者目的是为了尝试用Kolla来方便快捷的部署OpenStack,为以后多节点部署打下基础。 Kola简介: kolla项目起源于TripleO项目,聚焦于使用Docker容器部署OpenStack服务。该项目...

Devin ⋅ 2017/05/18 ⋅ 0

centors安装mysql

51CTO技术ceteos7.2安装mysql5.7.13 一、MySQL 5.7 主要特性: 原生支持 Systemd 更好的性能:对于多核 CPU、固态硬盘、锁有着更好的优化 更好的 InnoDB 存储引擎 更为健壮的复制功能:复制带...

moguy ⋅ 2017/01/11 ⋅ 0

CentOS7.2如何修改主机名

在CentOS7.2或RHEL7.2中,有三种定义的主机名:静态的(static),瞬态的(transient),以及灵活的(pretty)。“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname 自动初始化...

jason_125 ⋅ 2016/12/20 ⋅ 0

[docker in docker]使用docker起一个Centos7.2容器 容器中再安装docker 但docker服务起不来

物理服务器上安装docker,版本如下: docker version Client: Version: 1.8.2-el7.centos API version: 1.20 Package Version: docker-1.8.2-10.el7.centos.x86_64 Go version: go1.4.2 Git ......

zhang_gq ⋅ 2016/03/30 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iExec Blockchain Marketplace for Cloud

iExec Releases the First-Ever Blockchain Marketplace for Trading Cloud Computing Berlin, Germany, May 29, 2018. iExec has released its blockchain-based decentralized cloud marke......

openthings ⋅ 19分钟前 ⋅ 0

OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《29》- 未完成乐队 《29》- 未完成乐队 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :#看球提醒# 02:00 巴西v...

小小编辑 ⋅ 38分钟前 ⋅ 11

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部