- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linux系统下以RPM方式如何安装mysql-5.7.9由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
mysql-5.7.9 64位 RPM集合包在Linux系统中的安装过程。因为我用的64位的CentOS7所以我下的是64位的集合包,如果你用的32位的Linux系统请下载32位的集合包。这里我只讲安装,不解释命令的使用方法,因为都是些比较常用的基本命令,不懂的,可以去网上找资料,或者下个Linux常用命令手册。在安装前我们可以先添加一个名为mysql的用户组:groupadd mysql。再添加一个名为mysql的用户到这个组中:
adduser -g mysql mysql。最后为这个用户设置密码:passwd mysql。不过,这步操作可有可无,显麻烦的,可以略过.
工具/原料 。
Linux系列系统 。
mysql-5.7.9 64位 RPM集合包 。
方法/步骤 。
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密码成为确认安全部署的一部分.
2 。
本来我也是想省事,打算从网上找些安装教程,但是基本上都是5.7.6版本以下的教程,害得我死活找不到.mysql_secret文件,mysql_install_db也执行不了。没办法我就去官网找文档了,让人头晕的是竟然没中文语言支持,没办法,英文也得看。这也就是我要把详细版本号标出来的原因。首先,就是要下载,看下面3张图:
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来查看一下我们要卸载哪些软件,看下图:
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 。
看下图:
卸载完了,我们就开始安装吧!安装前,先讲一下,虽然官方文档说安装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张图:
这样我们就把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.
再来看官方文档,看下图,图中英文翻译过来就是:
不管在哪个平台上,使用--initialize选项就是以“默认安全模式”来进行安装的(即包含一个随机的root初始密码的生成)。在这种情况下,密码是被标志为过期的,你需要选择一个新的密码。使用--initialize-insecure选项,没有root密码生成;如果是这样的话,在服务器投入生产使用之前,你需要及时地为账户指定密码.
通过官方文档我们可以知道,使用--initialize会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root -p,然后输入密码来登录MySQL。使用--initialize-insecure不会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root --skip-password直接登录MySQL.
初始化的操作我们要在/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,就可以了.
下面我们来看下root账户的随机初始密码,执行命令:
vi /var/log/mysqld.log 。
下图红线框中的字符就是密码,把它记下来,登录MySQL的时候要用:
现在可以启动mysqld服务了,执行命令:
systemctl start mysqld 。
我们来看下mysqld是否已经启动了,执行命令:
systemctl status mysqld 。
如果看到的和下图一样,就说明已经启动了:
我们来对上一步作个补充,因为你也有可能会遇到。如果你在执行命令:
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服务了.
准备工作全部就绪,来吧,登录吧!执行命令:mysql -u root -p。要注意输入密码是不显示的,不是你的键盘有问题,而是Linux的一种安全机制,只管输入就行。看下图:
最后还要讲下怎么修改密码,从官方文档中我们了解到要用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.
至此,所有工作就完了。最后不禁要感慨一下:真后悔当初没好好学英语啊!好好学英语吧,童鞋们.
最后此篇关于Linux系统下以RPM方式如何安装mysql-5.7.9的文章就讲到这里了,如果你想了解更多关于Linux系统下以RPM方式如何安装mysql-5.7.9的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有这个代码: System.err.print("number of terms = "); System.out.println(allTerms.size()); System.err
我有以下问题:在操作系统是 Linux 的情况下和在操作系统是 MacOs 的情况下,我必须执行不同的操作。 所以我创建了以下 Ant 脚本目标: /u
我正在调用 system("bash ../tools/bashScript\"This is an argument!\"&"),然后我正在调用 close(socketFD) 直接在 system
使用最初生成的随机元素来约束随机数组的连续元素是否有效。 例如:我想生成一组 10 个 addr、size 对来模拟典型的内存分配例程并具有如下类: class abc; rand bit[5:0
我正在创建一个必须使用system(const char*)函数来完成一些“繁重工作”的应用程序,并且我需要能够为用户提供粗略的进度百分比。例如,如果操作系统正在为您移动文件,它会为您提供一个进度条,
我即将编写一些项目经理、开发人员和业务分析师会使用的标准/指南和模板。目标是更好地理解正在开发或已经开发的解决方案。 其中一部分是提供有关记录解决方案的标准/指南。例如。记录解决/满足业务案例/用户需
在开发使用压缩磁盘索引或磁盘文件的应用程序时,其中部分索引或文件被重复访问(为了论证,让我们说一些类似于 Zipfian 分布的东西),我想知道什么时候足够/更好地依赖操作系统级缓存(例如,Debia
我们编写了一个 powershell 脚本,用于处理来自内部系统的图像并将其发送到另一个系统。现在,业务的另一部分希望加入其中,对数据进行自己的处理,并将其推送到另一个系统。打听了一下,公司周围有几个
我正在尝试朗姆酒我的应用程序,但我收到以下错误:System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
所以我在其他程序中没有收到此错误,但我在这个程序中收到了它。 这个程序是一个我没有收到错误的示例。 #include int main() { system("pause"); } // en
我在 c# System.URI.FormatExption 中遇到问题 为了清楚起见,我使用的是 Segseuil 的 Matlab 方法,并且它返回一个图片路径 result。我想为其他用户保存此
我正在尝试像这样设置文本框的背景色: txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 它不喜欢它,因为它要我在前面添加系统,例如: txtCo
请帮助我解决 System.StackOverflowException我想用 .aspx 将记录写入数据库我使用 4 层架构来实现这一切都正常但是当我编译页面然后它显示要插入数据的字段时,当我将数据
我使用了一些通常由系统调用的API。 因此,我将 android:sharedUserId="android.uid.system" 添加到 manifest.xml, 并使用来自 GIT 的 And
我正在尝试创建一个小型应用程序,它需要对/system 文件夹进行读/写访问(它正在尝试删除一个文件,并创建一个新文件来代替它)。我可以使用 adb 毫无问题地重新挂载该文件夹,如果我这样做,我的应用
我想从没有 su 的系统 priv-app 将/system 重新挂载为 RW。如何以编程方式执行此操作?只会用 Runtime.getruntime().exec() 执行一个 shell 命令吗
我正在尝试制作一个带有登录系统的程序我对此很陌生,但我已经连续工作 8 个小时试图解决这个问题。这是我得到的错误代码 + ServerVersion 'con.ServerVersion' threw
当我“构建并运行”Code::Blocks 中的程序时,它运行得非常好!但是当我从“/bin”文件夹手动运行它时,当它试图用 system() 调用“temp.bat”时,它会重置。这是为什么?它没有
我想使用 system/pipe 命令来执行具有特殊字符的命令。下面是示例代码。通过系统/管道执行命令后,它通过改变特殊字符来改变命令。我很惊讶地看到系统命令正在更改作为命令传递的文本。 run(ch
我是一名优秀的程序员,十分优秀!