Linux虚拟机安装Mysql,并使用Navicat连接

一、目的

       安装msql,并设置可以远程访问,使用Navicate数据库管理软件进行mysql数据库管理。

二、Linux虚拟机安装mysql并设置允许远程访问

1.查看知否已有MySQL

输入:yum list installed | grep mysql


2.卸载自带的MySQL

输入:yum -y remove mysql-libs.x86_64,若有多个依赖文件则依次卸载。
当结果显示为Complete!即卸载完毕。卸载之后要清理干净,清理目录。

3.查看yum库上的mysql版本信息。

输入:yum list | grep mysql 或 yum -y list mysql*

4.使用yum安装mysql数据库。

输入:yum -y install mysql-server mysql mysql-devel ,命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为“Complete!”即安装完毕。


5.查看刚安装mysql数据库版本信息。

输入:rpm -qi mysql-server


6.启动MySQL

service mysqld start

7.设置密码

update user set password=passworD("pingce123") where user="root";
flush privileges;

7.5在linux系统上登陆mysql服务。

-- root 是用户名
[root@localhost ~]# mysql -u root -p
Enter password: --  输入密码

8.设置远程连接


将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip
     update user set host='%' where user='root' and host='localhost';
      flush privileges;        #刷新权限表,使配置生效
      然后我们就能远程连接我们的mysql了。

原文:https://blog.csdn.net/qq_17770183/article/details/78339020 

创建远程连接 MySQL 的用户:

8.5 给访问mysql数据库的用户权限

-- 创建用户、密码及权限范围 第一个 roo t为用户名 @后为适用的主机,‘%’表示所有电脑都可以访问连接,第二个 root 为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.2' IDENTIFIED BY 'root' WITH GRANT OPTION;                 
Query OK, 0 rows affected (1.57 sec)

-- 立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 
9.退出mysql命令行模式之后,开启虚拟机外部访问的端口。设置防火墙开放3306端口或者关闭防火墙
防火墙开放3306端口
    防火墙开放3306端口:
    1)打开防火墙配置文件
    vi  /etc/sysconfig/iptables
    2)增加下面一行
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    3)重启防火墙
    service  iptables restart
    注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前
    
    关闭防火墙:
    1) 永久性生效
    开启:chkconfig iptables on
    关闭:chkconfig iptables off

    2)即时生效,重启后失效
    开启:service iptables start
    关闭:service iptables stop
    需要说明的是对于 Linux 下的其它服务都可以用以上命令执行开启和关闭操作

10.启动mysqld服务,启动mysql数据库
    service mysqld start;
    关闭为:service mysqld stop;

有用文章:https://blog.csdn.net/fjssharpsword/article/details/72865706

三、在虚拟机之外的本地计算机检查虚拟机端口是否已经开放

 
linux运维都需要对端口开放查看  netstat 就是对端口信息的查看

# netstat -nltp

p 查看端口挂的程序

[root@iz2ze5is23zeo1ipvn65aiz ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3346/nginx: master  
tcp        0      0 127.0.0.1:8081          0.0.0.0:*               LISTEN      2493/docker-proxy-c 
tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      5529/docker-proxy-c 
tcp        0      0 127.0.0.1:8083          0.0.0.0:*               LISTEN      17762/docker-proxy- 
tcp        0      0 127.0.0.1:8084          0.0.0.0:*               LISTEN      2743/docker-proxy-c 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2155/sshd    
看到 查询的有Local、Address、Foregin、Program name
Local :访问端口的方式,0.0.0.0 是对外开放端口,说明80端口外面可以访问;127.0.0.1 说明只能对本机访问,外面访问不了此端口;

Address:端口

Foregin Address:对外开放,一般都为0.0.0.0:* 

Program name:此端口是那个程序在用,程序挂载此端口

重点说明 0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口

               127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性

    ::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符

四、Navicat连接mysql

       使用ifconfig查看虚拟机的ip,然后填入navicat,连接数据库即可。

Linux虚拟机安装Mysql,并使用Navicat连接_第1张图片

五、补充

    如果开放了mysql远程连接以及用户的昂问权限,并且关闭了防火墙,依旧无法访问。问题就出在虚拟机的网络上。根据下面的四种网络连接方式的学习,可以知道如果虚拟机使用的是桥接模式,那么需要配置3306端口映射,才能让navicate连接上mysql。

快速理解VirtualBox的四种网络连接方式

VirtualBox中有4中网络连接方式:

  1. NAT
  2. Bridged Adapter
  3. Internal
  4. Host-only Adapter

VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。

要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别:

Linux虚拟机安装Mysql,并使用Navicat连接_第2张图片

(注:此图直接取至Finalbug的Blog,表示感谢)

再来用文字做详细的解释(其实归结起来就是上面的那张图):

1、NAT

NAT:Network Address Translation,网络地址转换

NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:

Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。

Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。

虚拟机与主机的关系:只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。

虚拟机与网络中其他主机的关系:只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。

虚拟机与虚拟机的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。

2、Bridged Adapter(网桥模式)

网桥模式,你可以这样理解:

它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。

网桥模式下的虚拟机,你把它认为是真实计算机就行了。

虚拟机与主机的关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。

虚拟机于网络中其他主机的关系:可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。

虚拟机与虚拟机的关系:可以相互访问,原因同上。

3、Internal(内网模式)

内网模式,顾名思义就是内部网络模式:

虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。

虚拟机与主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。

虚拟机与网络中其他主机的关系:不能相互访问,理由同上。

虚拟机与虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。

4、Host-only Adapter(主机模式)

主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。

我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。

虚拟机与主机的关系:默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。

虚拟机与网络主机的关系:默认不能相互访问,原因同上,通过设置,可以实现相互访问。

虚拟机与虚拟机的关系:默认可以相互访问,都是同处于一个网段。

以上关于这4种连接方式的文字解释,基本上抄自于(转)VirtualBox网络设置与应用详解(图解+文字)这篇文章,但没有找到此文的原始出处。

关于这几种连接方式,理解VMWare的三种网络连接模式(bridged、NAT、host-only)里的解释只是换了文字来表述,虽然显得重复,但为了理解,干脆就写成了这两篇Blog。

Update:我刚装上VirtualBox的时候所有的网络连接方式都试过了,但虚拟机和虚拟机之间就是不能 相互访问,Ping都Ping不通,我在想难道VirtualBox的网络设置有这么复杂吗,后来想到是不是Windows XP的防火墙的问题,关闭之,一切就正常了,Fuck!

参考资料:

  1. VirtualBox四种网络连接模式比较
  2. (转)VirtualBox网络设置与应用详解(图解+文字

 

VMware支持三种类型的网络:NAT,Bridged,Host-only。

NAT

这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。

 

Linux虚拟机安装Mysql,并使用Navicat连接_第3张图片

 

Bridged

这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。

Linux虚拟机安装Mysql,并使用Navicat连接_第4张图片

 

Host-only

这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。

Linux虚拟机安装Mysql,并使用Navicat连接_第5张图片

你可能感兴趣的:(Linux)