网站建设与维护书,盐田做网站,淘宝店群软件定制开发,安康养老院收费1在开始安装之前#xff0c;我们先来一小段官方文档#xff0c;看下图。图中英文翻译过来就是#xff1a;从MySQL5.7.4起#xff0c;以RPM包的方式安装后的MySQL的部署默认是安全的#xff0c;并且有这些特点#xff1a;在大多数情况下#xff0c;你只需要安装MySQL-ser…1在开始安装之前我们先来一小段官方文档看下图。图中英文翻译过来就是从MySQL5.7.4起以RPM包的方式安装后的MySQL的部署默认是安全的并且有这些特点在大多数情况下你只需要安装MySQL-server和MySQL-client安装包就可以安装上一个标准功能的MySQL。对于一个标准安装来说其他的安装包不是必需的。MySQL的安装程序会创建一个单独的root账户rootlocalhost并自动为这个账户生成一个初始的随机密码并将此密码标志为已过期。对于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_64rpm -e --nodeps mariadb-server-5.5.41-2.el7_0.x86_64rpm -e --nodeps mariadb-5.5.41-2.el7_0.x86_64看下图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.rpmrpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm注意是依次执行不要乱了顺序因为它们之间有依赖关系。看下面4张图6这样我们就把MySQL安装好了当然最重点的地方也就来了那就是初始化。来吧又到了官方文档时间段了看下图图中英文翻译过来就是在Unix和Unix系列系统中有一点是很重要的那就是确保数据库目录与文件的所有者为mysql登录账户以便在你运行mysqld服务的时候mysql服务可以对这些目录和文件进行读取与写入操作。如果你是以root身份运行mysqld服务就需要确认一下执行如下面显示的包含有--user选项的命令shell bin/mysqld --initialize --usermysqlshell bin/mysqld --initialize-insecure --usermysql另外当你是以mysql的账户登录并执行程序的情况下你可以将--user选项从命令中去掉。所以我在前面提到过添加mysql用户和mysql用户组当然这步操作可做可不做。通过官方文档我们可以知道如果我是root身份登录Linux系统可以执行mysqld --initialize --usermysql或者mysqld --initialize-insecure --usermysql。如果我是以mysql用户登录Linux系统可以执行mysqld --initialize或者mysqld --initialize-insecure。7再来看官方文档看下图图中英文翻译过来就是不管在哪个平台上使用--initialize选项就是以“默认安全模式”来进行安装的(即包含一个随机的root初始密码的生成)。在这种情况下密码是被标志为过期的你需要选择一个新的密码。使用--initialize-insecure选项没有root密码生成如果是这样的话在服务器投入生产使用之前你需要及时地为账户指定密码。通过官方文档我们可以知道使用--initialize会为root账户生成一个随机的初始密码我们可以使用命令mysql -u root -p然后输入密码来登录MySQL。使用--initialize-insecure不会为root账户生成一个随机的初始密码我们可以使用命令mysql -u root --skip-password直接登录MySQL。8初始化的操作我们要在/usr/bin目录中进行所以我们先进入/usr/bin目录cd /usr/bin。然后我是以root身份登录Linux系统的并且我想为root账户生成一个随机的初始密码,所以我要执行命令mysqld --initialize --usermysql这样就完成了对MySQL的初始化并为root账户生成了一个随机的初始密码。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就可以了。10下面我们来看下root账户的随机初始密码执行命令vi /var/log/mysqld.log下图红线框中的字符就是密码把它记下来登录MySQL的时候要用11现在可以启动mysqld服务了执行命令systemctl start mysqld我们来看下mysqld是否已经启动了执行命令systemctl status mysqld如果看到的和下图一样就说明已经启动了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服务了。13准备工作全部就绪来吧登录吧执行命令mysql -u root -p。要注意输入密码是不显示的不是你的键盘有问题而是Linux的一种安全机制只管输入就行。看下图14最后还要讲下怎么修改密码从官方文档中我们了解到要用ALTER USER语句可以修改密码。登录MySQL后执行语句alter user rootlocalhost identified by mYsqL$%123;就将root账户的密码修改为mYsqL$%123了。有一点需要注意MySQL对用户密码安全性有所加强所以设置的密码必须包含有数字大写字母小写字母特殊符号如果你设置的密码过于简单会提示ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。至此所有工作就完了。最后不禁要感慨一下真后悔当初没好好学英语啊好好学英语吧童鞋们END