联系博主


你的名字:
Email:
建议:

Linux下MySQL5.7的安装与远程登陆的配置

编辑时间:2016-04-04      赞:7       踩:0

导言:

这篇博文主要的介绍的是在VBox虚拟机下的CentOS6.7的MySQL5.7的安装及其远程账户登陆的配置。

正文:

       由于官方yum源的MySQL版本比较旧,所以我们用MySQL给我们提供的源来安装MySQL5.7(截止2016年4月,MySQL5.7为最新版本的MySQL)。有图有真相,下面我会用图文结合的方式来讲一下如何安装MySQL5.7。


1.进如何MySQL的官网找到其安装源。上图~~~~~~

       进入到MySQL的官网后,点击downloads下的 Yum Repository项(图中已红框框出)。拉到最下面,会看到各种版本Linux的安装源。如图,


       选中适合自己版本的源,点击Download 。 看到以下界面,在‘No thanks, just start my download.’项中,点击鼠标左键,复制其链接。

       在Linux终端执行以下命令rpm -ivh (http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm),其中用括号括起来的便是刚刚复制的地址。执行命令,若没有报错,则证明源安装成功。如果报错的话,直接上网搜一下错误信息就会有答案了,程序员要善用网络资源嘛。这里就不细细展开了。


2.安装MySQL5.7
       源安装完后接下来的事情就简单了。先确认一下源是否安装成功。在终端输入下面命令‘yum list|grep mysql’,出现MySQL5.7的包信息便算安装成功了,如下图。

       接着,就可以用yum命令直接安装MySQL了。先搜索一下MySQL的安装包名。用以下命令:‘yum search mysql’。找到MySQL的安装包名直接安装就可以了。我的安装命令为‘yum -y install mysql-community-server’大家可以对照一下。
       如无报错,等待一段时间就可以安装成功了。安装成功后就要连接MySQL了。下面我来介绍一下如何连接MySQL5.7。


3.连接MySQL5.7
       安装成功后,可以用‘service mysqld start’来启动MySQL(不要忘了mysql后面的d)。启动成功后,就在终端输入‘mysql –u root -p’来登陆。然而此时你会发现登陆失败,因为自MySQL5.7后root的默认密码不为空,在安装时它会给你分配一个临时密码,你需要用临时密码来登陆MySQL。那,临时密码在哪呢?它会把临时密码记录在mysql的日志中,输入以下命令便可获得临时密码“grep 'temporary password'/var/log/mysqld.log”。命令输出如下“[Note] A temporary password is generated for root@localhost: _.BwOj?OE51,”,用红色标出的便是临时密码了。输入临时密码时要一字不差,包括各种奇怪字符,当初我就是因为输少了最后一个逗号,弄得总是登陆失败,害得我以为自己安装失败了。登陆成功之后就可以用以下命令修改root密码了----“mysqladmin -u root password '新密码' ”。注意:新密码要符合mysql密码的安全规则,否则会修改失败,密码两端的单引号也不能省。


4.远程登陆虚拟机MySQL
       要想远程登陆MySQL,先要创建个有远程登陆登陆权限的MySQL账号。为了简单起见,我就以给root赋予远程登陆来讲解。
       登陆mysql后,输入以下SQL语句给root赋予远程登录权限“grant all privileges on *.* to 'root'@'%' identified by 'root的密码' with grant option; ”。简单解析一下这句命令吧。‘Grant all privileges’的意思是把所有权限赋予目标账户,这里的目标账户为root,当然也可以是自定义的账户。‘on *.*’是指赋予的权限对所有库及所有表生效。“ to 'root'@'%' ” 的意思是‘to’后面接的是目标账户名,这里是root,‘@’字符后面接的是允许该账户从哪个IP地址登陆,这里用了‘%’表示任意IP地址都可以用这个账号登陆。这当然十分危险,实际中不建议大家这样做,一定要限制为具体的IP地址,特别是高权限的账户。“identified by 'root的密码' with grant option”,这句的作用是赋予该账户远程登陆密码,并且允许这个远程登录账户把其拥有的权限赋予其他用户。赋予的密码也要符合mysql的密码安全规则,不然命令可能执行失败。执行完命令后,可以重启MySQL来刷新权限,也可以用‘flush privileges; ’SQL语句来刷新权限。
       这条SQL语句当然还有更多其他的应用,大家可以去官方手册了解一下,里面讲的特别详细,特别建议大家去阅读一下。
       嗯,给root赋予了远程登陆权限后就可以用root远程登陆了。如何查看root的远程登陆权限真的赋予成功了呢?在mysql中输入以下SQL语句‘select user,host from mysql.user;’便可查看相关信息了。如下图

       这就真的就可以用root远程登陆吗?别(还)急(早),且(着)听(呢)我(!)慢慢道来。即使MySQL允许你远程登陆了,但人家Linux还没运行呢?Linux防火墙有可能会拦截远程连接,所有要把3306端口(MySQL默认端口)的远程连接开放,然后它才不会拦截MySQL的远程登陆。当然,你可以直接把防火墙给关了,简单粗暴见效快。不过我不建议大家这样做,毕竟Linux的防火墙还是有其用途的。下面我就来讲一下如何开放防火墙的3306端口。
       其实很简单,在终端输入以下命令‘/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT’,保存器设置‘/etc/rc.d/init.d/iptables save’,然后重启防火墙就可以让其放开3306端口了,‘/etc/init.d/iptables restart’。重启完后,可以查看防火墙的状态,看其是否打开了3306端口,用以下命令‘/etc/init.d/iptables status’。看到以下输出就判断,3306端口确实放开了。
[root@localhost ~]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306
       MySQL搞掂了,Linux也搞掂了,远程登陆就成了吗?在实践中这确实没问题,而我现在的Linux是安装在VBox虚拟机中的。所以还有虚拟机一关没搞掂,那就是让虚拟机让虚拟机转发请求。如果虚拟机不转发请求,你在Windows下用远程登陆还是会失败的。我当初折腾了几近一个晚上才算折腾出这个原因。说起来都是泪啊!当时我把所有的配置查了又查了,应是没查出问题。万万没想到,问题出在虚拟机身上。下面就讲解一下如何让虚拟机转发请求。
       打开virtualbox虚拟机的设置,选择设置一一网络——高级——端口转发——添加转发规则。如图

       打开端口转发后,就可以添加端口转发请求了。如下图,



       添加完成后确定就可以了,然后就可以用windows下的远程工具连接MySQL了。至此大功告成。当然,我在这里也要感谢前辈们把他们的经验分享出来,帮我解决了的这么多问题。我也从中学习了不少知识。下面我会把它们的链接分享出来,大家可以对照我这篇文章来安装MySQL。由于篇幅原因,本文未能覆盖MySQL安装中的所有问题,请大家见谅。最后的最后,若是用于非商业用途,可以自由转载本文,但必须注明出处。






关于win下连接virtualbox中linux虚拟机的mysql:
http://www.codes51.com/article/detail_169893.html


关于CentOS6.4下Mysql数据库的安装与配置(非常详细的图文教程)
http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html


关于Linux防火墙
http://www.cnblogs.com/rockee/archive/2012/05/17/2506671.html


MySQL官网:

http://www.mysql.com


转载请注明:
    本文转载自:www.kantblog.com/blog/DtBase/1

Kant©2016 All rights reserved 粤ICP备16014517号