文档章节

centos6.7安装mysql5.79 及修改mysql初始密码

 前进中的老李
发布于 2017/08/13 23:52
字数 1929
阅读 10
收藏 0
点赞 0
评论 0

centos6.7安装mysql5.79

centos用桌面版,不用额外装依赖

在开始安装之前,我们先来一小段官方文档,看下图。图中英文翻译过来就是:

从MySQL5.7.4起,以RPM包的方式安装后的MySQL的部署默认是安全的,并且有这些特点:

在大多数情况下,你只需要安装MySQL-server和MySQL-client安装包就可以安装上一个标准功能的MySQL。对于一个标准安装来说,其他的安装包不是必需的。

MySQL的安装程序会创建一个单独的root账户:'root'@'localhost',并自动为这个账户生成一个初始的随机密码,并将此密码标志为已过期。

对于MySQL5.7.6和更高的版本来说,初始的随机root密码是被写入错误日志的。对于MySQL5.7.4和5.7.5版本来说,密码是被写入以HOME环境变量命名的目录中的.mysql_secret文件中的。根据操作系统,可以使用诸如sudo这样的命令让HOME环境变量的值指向root系统用户的home目录。.mysql_secret文件是以只允许创建它的系统用户访问的600模式而创建的。(版本差异的产生,是因为自5.7.6版本起数据目录和root账户由mysqld --initialize来初始化,5.7.6以前的版本由mysql_install_db来初始化)。

不创建MySQL匿名账户。

不创建测试数据库。

作为上述操作所产生的结果,在安装完成后你需要去启动服务,以root身份,用初始的随机密码来进行连接,并且在连接后选择一个新的密码。在完成这些操作之前,root用户无法做其他的任何事情。修改密码,你可以用ALTER USER语句(例如,通过mysql客户端)。重设密码后,如果有创建.mysql_secret文件就把它删除;否则,在你执行mysql_secure_installation这条命令的时候,可能会再次看到那个文件和过期的root密码成为确认安全部署的一部分。

1 查询rpm方式安装了哪些mysql包

rpm -qa | grep mysql

centos6.7自带5.1的mysql-libs,将其卸载

2 卸载默认的mysql-libs

rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps

3 顺序安装如下rpm包:

 mysql-community-common-5.7.9-1.el7.x86_64.rpm
 mysql-community-libs-5.7.9-1.el7.x86_64.rpm             --(依赖于common)
 mysql-community-client-5.7.9-1.el7.x86_64.rpm          --(依赖于libs)
 mysql-community-server-5.7.9-1.el7.x86_64.rpm         --(依赖于client、common)

安装命令为

rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm

4为了保证数据库能正确处理中文,我们需要设定数据库默认的编码为utf8。修改/etc/my.cnf文件,并在其中加入以下内容:

[client]  

default-character-set=utf8mb4  

[mysqld]  

character_set_server=utf8mb4 

上面的[client] [mysqld] 不能丢,而且每行后面不能有空格

5 接下来是初始化数据库,我们使用如下几条命令均可,效果都是一样的,在/usr/bin目录下执行

[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql   //必须指定datadir,执行后会生成~/.mysql_secret密码文件(≤5.7.5)

或者

[root@5201351 ~]# mysqld --initialize --user=mysql    //(≥5.7.6)此方法,执行生会在/var/log/mysqld.log生成随机密码

 

在Unix和Unix系列系统中,有一点是很重要的,那就是确保数据库目录与文件的所有者为mysql登录账户,以便在你运行mysqld服务的时候,mysql服务可以对这些目录和文件进行读取与写入操作。如果你是以root身份运行mysqld服务,就需要确认一下,执行如下面显示的包含有--user选项的命令:

shell> bin/mysqld --initialize --user=mysql

shell> bin/mysqld --initialize-insecure --user=mysql

另外,当你是以mysql的账户登录并执行程序的情况下,你可以将--user选项从命令中去掉。

所以我在前面提到过添加mysql用户和mysql用户组,当然这步操作可做可不做。通过官方文档我们可以知道,如果我是root身份登录Linux系统,可以执行:mysqld --initialize --user=mysql或者mysqld --initialize-insecure --user=mysql。如果我是以mysql用户登录Linux系统,可以执行:mysqld --initialize或者mysqld --initialize-insecure。

 

初始化的操作我们要在/usr/bin目录中进行,所以我们先进入/usr/bin目录:cd /usr/bin。

然后,我是以root身份登录Linux系统的,并且我想为root账户生成一个随机的初始密码,所以我要执行命令:mysqld --initialize --user=mysql;这样就完成了对MySQL的初始化,并为root账户生成了一个随机的初始密码。

 

mysqld服务会检查数据目录是否存在,如下:

如果数据目录不存在,mysqld则会创建它。

如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:

[ERROR] --initialize specified but the data directory exists. Aborting.

遇到这种情况,就将数据目录删除或重命名后,重新再试一次。

我来简单说明一下,也就是在初始化之前,先检查一下数据目录是否存在,执行命令:ls  -l  /var/lib|grep mysql。若有,则执行命令:

rm  -rf  /var/lib/mysql,将其删除;

或者执行命令:mv  /var/lib/mysql   /var/lib/newname,将其重命名为newname,就可以了。

 

6 获取初始密码

grep 'temporary password' /var/log/mysqld.log 

结果如下

2017-07-16T13:44:25.778082Z 1 [Note] A temporary password is generated for root@localhost: sefySklP-9cf

密码为sefySklP-9cf

7 启动mysql

service mysqld start

service mysqld status

centos7的启动命令是systemctl  start  mysqld

 

关于centos7启动mysql

我们来对上一步作个补充,因为你也有可能会遇到。如果你在执行命令:

systemctl  start  mysqld时,出现了和下图一样的提示:

Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.

出现这样的错误提示,我们先查看一下/var/lib/mysql-files目录是否存在,执行命令:ls  -ld  /var/lib/mysql-files。如果不显示任何信息就表示不存在,执行命令:mkdir  /var/lib/mysql-files,创建/var/lib/mysql-files目录。这时,我们试着执行命令:systemctl  start  mysqld。如果还出现和下图一样的提示,我们执行另一条命令:chown -R mysql:mysql  /var/lib/mysql,将/var/lib/mysql目录及其下所有文件和子目录的所有者和所属组都改为mysql。我们再执行一下:systemctl  start  mysqld应该就可以启动mysqld服务了。

 

8 登录mysql

1. mysql -uroot -p'初始密码'  

2. ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 

9 设置mysql开机自启动

chkconfig mysqld on

修改mysql5.7的root用户密码

其实想要重置 5.7 的密码很简单,就一层窗户纸:

1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1

这一行配置让 mysqld 启动时不对密码进行验证

2、重启 mysqld 服务:systemctl restart mysqld

3、使用 root 用户登录到 mysql:mysql -u root 

4、切换到mysql数据库,更新 user 表:

update user set authentication_string = password('123456'), password_expired = 'N', password_last_changed = now() where user = 'root';

在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string

5、退出 mysql,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内容

6、flush privileges;

7、重启 mysqld 服务,再用新密码登录即可

另外,MySQL 5.7 在初始安装后(CentOS7 操作系统)会生成随机初始密码,并在 /var/log/mysqld.log 中有记录,可以通过 cat 命令查看,找 password 关键字

找到密码后,在本机以初始密码登录,并且(也只能)通过 alter user 'root'@'localhost' identified by 'root' 命令,修改 root 用户的密码为 root,然后退出,重新以root用户和刚设置的密码进行登录即可。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 2
码字总数 2388
作品 0
海淀
程序员
MySQL在centos6下的yum安装使用

环境:centos6.7 32bit 数据库MySQL的安装配置 1.安装 [root@cloudstack Desktop]# yum -y install mysql-serverLoaded plugins: fastestmirror, refresh-packagekit, security .......Depen......

YuanyuanL
2016/01/18
73
0
centos6.7源码安装mysql5.6

安装配置: 1. 下载编译好的二进制安装包 官网地址:http://dev.mysql.com/downloads/mysql/ 2. 进入安装包目录,解压安装包 #tar –xzvf mysql-5.6.30-x64.tar.gz 3. 复制解压后的mysql目录...

rock912
2016/10/18
11
0
centos6.7源码安装mysql5.6

安装配置: 1. 下载编译好的二进制安装包 官网地址:http://dev.mysql.com/downloads/mysql/ 2. 进入安装包目录,解压安装包 #tar –xzvf mysql-5.6.30-x64.tar.gz 3. 复制解压后的mysql目录...

miaojiangmin
2016/10/30
1
0
阿里云主机部署Docker容器引擎

阿里云主机部署Docker容器引擎 一、部分 通过阿里云软件市场一键部署 配置过程如下链接: https://market.aliyun.com/products/56014007/cmjj017110.html?spm=5176.2020520132.101.5.4MIrmY...

zhang书虫
2017/09/25
0
0
Dockerfile:mysql镜像编写

mysql镜像在centos6.7上的Dockerfile实现如下: FROM centos:6.7 MAINTAINER chenyufeng "yufengcode@gmail.com" 使用yum的方式安装mysql; RUN yum install -y mysql-server mysql 安装完成......

CHENYUFENG1991
2017/12/10
0
0
cobbler 全自动安装

cobbler简介 cobbler是实现自动化安装操作系统的工具。它解决了PXE安装时的弊端(只能实现单一操作系统的安装)。实际上,cobbler是对PXE二次封装可实现多版本,多环境操作系统安装的高级抽象...

5431039
2016/04/12
0
0
CentOS 7 安装 MySQL

MySQL 下载 & 安装 在 CentOS 7 中默认安装有 MariaDB,这个是 MySQL 的分支,但为了需要,还是要在系统中安装 MySQL,而且安装完成之后可以直接覆盖掉 MariaDB。 ①、安装 wget ②、由于 Ce...

TinyDolphin
01/11
0
0
Wordpress与Discuz

httpd访问的资源有两种,静态资源以及动态资源;静态资源有我们常见的图片,jsp,音乐,音频等,而动态资源指的是一些需要经过编译执行代码来实现的资源类型,需要数据库MySQL或MariaDB来辅助...

wujunqi1996
06/28
0
0
centos7.2安装mysql5.7.17

CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变: 下载mysql的源 wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm...

肖咏卓
2017/05/16
0
0
CentOS 7.2 yum方式安装MySQL 5.7

CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变: 下载mysql的源 wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm...

听风讲你
2017/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
1分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
3分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
7分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
9分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
23分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
30分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
34分钟前
0
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
37分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
39分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
53分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部