32linux下安装mysql5.7_Linux系统下以RPM方式安装mysql-5.7.9

1

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

从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密码成为确认安全部署的一部分。

c97bfa01b928c60b8ff3bb4e4a20d4fb.png

2

本来我也是想省事,打算从网上找些安装教程,但是基本上都是5.7.6版本以下的教程,害得我死活找不到.mysql_secret文件,mysql_install_db也执行不了。没办法我就去官网找文档了,让人头晕的是竟然没中文语言支持,没办法,英文也得看。这也就是我要把详细版本号标出来的原因。首先,就是要下载,看下面3张图:

bae9eabbab828c6f14e004fb825386c2.png

0b42ad3c1cbb76816d91c5f4d6d2d352.png

ee4d9e8c06447eddebbb96b5673e333e.png

3

我先在Linux根目录建了一个test目录,执行命令:mkdir /test。然后把下载的安装包传到这个目录中,至于怎么传,我就不讲了,因为教程太多了。我们进入这个目录,执行命令:cd /test。执行解包命令:tar -xvh mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar。在输入安装包名字的时候,记得使用Tab键来进行命令补全,不然你逐个敲就太浪费时间了。

解包之后,说实在的,我也有点头大。我勒个去,居然有12个RPM包!不过,不要紧,我们再来回顾一下官方文档中的这句话:

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

怎么样,明白了吧?我们需要安装的是mysql-community-client-5.7.9-1.el7.x86_64.rpm和mysql-community-server-5.7.9-1.el7.x86_64.rpm。当然为了不浪费口舌,我就直接说了。安装时候会提示与已经安装的RPM包有冲突,所以我们先卸载一些RPM包,要卸载哪些呢?我们要卸载的是包含有mariadb关键字的RPM包,执行命令:rpm -qa|grep mariadb来查看一下我们要卸载哪些软件,看下图:

86e20ae3a911c19e80e126cd5cdd570b.png

4

既然知道了是哪些RPM包,就开始卸载吧!执行命令:

rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64

rpm -e --nodeps mariadb-server-5.5.41-2.el7_0.x86_64

rpm -e --nodeps mariadb-5.5.41-2.el7_0.x86_64

看下图:

336e72263fc187da646849b959eca552.png

5

卸载完了,我们就开始安装吧!安装前,先讲一下,虽然官方文档说安装mysql-community-client-5.7.9-1.el7.x86_64.rpm和mysql-community-server-5.7.9-1.el7.x86_64.rpm就可以获得标准功能的MySQL。但是由于RPM包的依赖关系,所以实际上我们还要多装2个RPM包:mysql-community-common-5.7.9-1.el7.x86_64.rpm和mysql-community-libs-5.7.9-1.el7.x86_64.rpm。依次执行命令:

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

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

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

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

注意:是依次执行,不要乱了顺序,因为它们之间有依赖关系。看下面4张图:

0fd1e120ef0711e2f5dda4aa871f7f9b.png

80bf8044f119116896f62149b9011b5a.png

c0030b900475cf056e4efa50ea4d0c97.png

13644d6d93fa704319624c7c5aa2e8a6.png

6

这样我们就把MySQL安装好了,当然最重点的地方也就来了,那就是初始化。来吧,又到了官方文档时间段了,看下图,图中英文翻译过来就是:

在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。

29b27b83f6e63f52d0b49d71e9d903db.png

7

再来看官方文档,看下图,图中英文翻译过来就是:

不管在哪个平台上,使用--initialize选项就是以“默认安全模式”来进行安装的(即包含一个随机的root初始密码的生成)。在这种情况下,密码是被标志为过期的,你需要选择一个新的密码。使用--initialize-insecure选项,没有root密码生成;如果是这样的话,在服务器投入生产使用之前,你需要及时地为账户指定密码。

通过官方文档我们可以知道,使用--initialize会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root -p,然后输入密码来登录MySQL。使用--initialize-insecure不会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root --skip-password直接登录MySQL。

92289740b686b9b957bbd092bf5c2da0.png

8

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

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

2f0106c49749ebf6c6d460b43964f005.png

9

我们来对上一步来作个补充,因为你有可能会用到,还是来看官方文档,看下图,图中英文翻译过来就是:

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,就可以了。

6948443410f6623ef2a8635995716f71.png

10

下面我们来看下root账户的随机初始密码,执行命令:

vi  /var/log/mysqld.log

下图红线框中的字符就是密码,把它记下来,登录MySQL的时候要用:

471501df776e7d27793b7796a37ceec2.png

11

现在可以启动mysqld服务了,执行命令:

systemctl  start  mysqld

我们来看下mysqld是否已经启动了,执行命令:

systemctl  status  mysqld

如果看到的和下图一样,就说明已经启动了:

1b116db40f032fcbffd0867739f5271d.png

12

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

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服务了。

cfc178afe5e72ad62e75eef68050acef.png

13

准备工作全部就绪,来吧,登录吧!执行命令:mysql  -u  root  -p。要注意输入密码是不显示的,不是你的键盘有问题,而是Linux的一种安全机制,只管输入就行。看下图:

c031921eb5b2a209756ebe7fd0bf126e.png

14

最后还要讲下怎么修改密码,从官方文档中我们了解到要用ALTER USER语句可以修改密码。登录MySQL后,执行语句:

alter user 'root'@'localhost'  identified  by  'mYsqL$%123';

就将root账户的密码修改为mYsqL$%123了。

有一点需要注意,MySQL对用户密码安全性有所加强,所以设置的密码必须包含有数字,大写字母,小写字母,特殊符号,如果你设置的密码过于简单,会提示:

ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。

至此,所有工作就完了。最后不禁要感慨一下:真后悔当初没好好学英语啊!好好学英语吧,童鞋们!

2323546dca27aead628de4e56518430f.png

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】电大中专新媒体营销实务 (7)作业 题库

1.依产生的先后顺序,当前媒体可分为四类:报纸、杂志等纸质平面媒体、广播媒体、电视媒体、互联网媒体。该说法( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:A 2.第四媒体发展到宽带互联网阶段成为&a…

PoE交换机的4种连接方法

POE也被称为基于局域网的供电系统或有源以太网,有时也被简称为以太网供电,一个完整的POE系统包括供电端设备和受电端设备两部分。可能会有一些朋友对poe供电有一些疑问,这个在之前也有很多朋友问到过,那么,今天就由飞畅…

【渝粤教育】电大中专电商运营实操 (23)作业 题库

电子商务最重要的是( ) A商务 B网站 C信息技术 D货物 正确 正确答案:左边查询 学生答案:A 2下列关于电子商务的特点叙述错误的是( ) A全球性 B简单的电子化支付手段 C交易环节多,营销成本高 D信…

带有NetBeans 10的Java EE

Apache NetBeans项目正在逐步形成。 10.0版于2018年12月27日发布。 下载版中列出了自9.0版以来添加的主要功能。 对我个人而言,最重要的功能是JDK 11支持。 那么,Java EE呢? 在将所有NetBeans源从Oracle转移到Apache并合并到Apache NetBean…

【渝粤教育】电大中专职业健康与安全 (3)作业 题库

试卷答案 1根据系统安全工程的观点,危险是指系统中存在导致发生不期望后果的可能性超过了( ) A极限 B人们的承受程度 C危险度 D安全系数 错误 正确答案:左边查询 学生答案:A 2对职工来说,安全是&#xff0…

POE交换机供电原理及工作过程

POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术.就是支持以太网供电的交换机。那么&am…

datagridview控件读写mysql数据库表格的方法_c# datagridview表格控件常用操作

1) 行右键菜单private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e){if (e.Button MouseButtons.Right){if (e.RowIndex > 0){//若行已是选中状态就不再进行设置if (dataGridView1.Rows[e.RowIndex].Selected false){dataGridView…

【渝粤教育】电大中专计算机常用工具软件 (2)作业 题库

1下列类型的软件中,功能没有任何限制且又不需要付费的是()。 A共享软件 B正版软件 C免费软件 D试用软件 错误 正确答案:左边查询 学生答案:D 2在常见的软件版本号中,Professional表示()。 A测试版 B专业版 C家庭版 D免…

PoE交换机可以当普通交换机使用吗?

PoE交换机是一种新型的多功能交换机,随着PoE交换机的广泛应用,人们对PoE交换机有了一定的了解。然而,很多人认为PoE交换机可以自行发电,这种说法并不正确,通常所讲的PoE交换机供电指的是PoE交换机通过网线来给其他设备…

【渝粤教育】电大中专跨境电子商务理论与实务 (20)作业 题库

1.自营型平台的代表企业有敦煌网.大龙网.米兰网。该说法( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:A 2.跨境电子商务对接“中国制造”激活了“买卖全球”,而与跨境电商联合则成为“中…

【渝粤题库】陕西师范大学229011 商业银行信贷管理Ⅰ 作业(高起专)

《商业银行信贷管理Ⅰ》作业 一、单项选择题 1、在"现金比率"公式当中,"等值现金"是指( )。 A.银行存款 B.等值的存货 C.有价证券 D.应收账款 2、世界上大多数国家的同业拆…

什么是PoE交换机?PoE交换机与PoE+交换机的区别!

PoE交换机是如今安防行业使用很广泛的一种设备,因为它是是一种为远程交换机(如IP电话或摄像机)提供电力和数据传输的交换机,具有非常重要的作用。而在使用PoE交换机时,就有朋友咨询到,有的PoE交换机上标着PoE,另外也看到有的标着P…

play 框架_用于Play框架分布式应用程序的Init.d Shell脚本

play 框架我编写了一个Shell脚本来控制使用内置命令dist打包的Play框架应用程序。 以这种方式打包的应用程序是独立的压缩发行版,而无需在应该运行的计算机上安装Play框架。 所需的一切都在包装内。 在zip的bin目录中,有一个可执行的Shell脚本&#xff0…

nginx php 不能连接mysql_nginx配置php环境,并测试PHP是否可以连接mysql

nginx配置文件:server {listen 80;root /var/www/html;server_name localhost;charset utf-8;index index.html index.htm index.php;location ~ .*.(php|php5)?${fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENA…

[渝粤教育] 中国地质大学 信息管理概论 复习题

信息管理概论 一单选题 1.个人接受外部信息并在人体内部进行信息处理的活动属于社会信息交流中的:() A.人的内向信息交流 B.人际信息交流 C.群体信息交流 D.大众信息交流 ()所需信息的表现形式以文献型信息和实物型信息为主 A.科研人员 B.管理人员 C.技术人员 D.教师 3.下列…

J2Pay – API响应

介绍 该库中的神奇之处在于,无论网关是什么,其响应都是唯一的。 了解API响应后,您便可以轻松地将此响应用于进一步的交易,例如退款,作废或重新开票。 首先,在开始阅读时,所有响应都是JSON。 所…

光纤收发器一定要成对使用吗?

当我们远距离传输时,通常会使用光纤来传输。因为光纤的传输距离远、抗干扰,一般来说单模光纤的传输距离在10千米以上,而多模光纤的传输距离最高也能达到2千米。而在光纤网络中,我们常常会使用到光纤收发器。那么,光纤收…

[渝粤教育] 中国地质大学 国际贸易理论 复习题 (2)

国际贸易理论模拟题 一单选题 1.《中华人民共和国保障措施条例》最后一次修订是在(). A.2001年11月 B.2002年1月 C.2003年11月 D.2004年3月 2.保障措施与反倾销性质上的差异表现为(). A.实施保障措施所必须满足的前提条件要比实施反倾销的前提条件更为严格 B.保障措施的实施期…

ansi iso mysql_ANSI/ISO标准规定的sql关键字

ABSOLUTE、ACTION、ADD、ALL、ALLOCATE、ALTER、AND、ANY、ARE、AS、ASC、ASSERTION、AT、AUTHORIZATION、AV。BEGIN、BETWEEN、BIT、BIT-LENGTH、BOTH、BY。CASCADE、CASCADED、CASE、CAST、CATALOG、CHAR、CHARACTER、CHAR-LENGTH、CHARACTER、LENGTH、CHECK、CLOSE、COALESC…

[渝粤教育] 中国地质大学 大学英语(2) 复习题

《大学英语(2)》模拟题 一.单选题 1.()her mother () she was at home when the thief came in A.Neither or B.Each and C.Neither nor 2.A major earthquake rocked Haiti at 4:53 pm local time on Jan.12 2010 killing possibly thousands of people but no official fi…