目录
前言:
Windows上的客户端连接工具有:
Linux上连接其他虚拟机上的MySQL服务器:
出现的问题:
如何解决mysql远程连接问题:
在Linux上通过Mysql客户端工具连接虚拟机上的Mysql服务器
1、首先我们先得下载mariadb
2、通过命令行工具Mysql连接上Mysql服务器(前提是你已经在mysql服务器里创建好远程访问用户了)
3、远程创建新数据库,并在Mysql服务器上验证是否创建成功
Mysql服务器上也可以通过如下命令查看已经连接上mysql服务器的主机IP地址
继上一次实验,我们已经成功在Linux上安装了mysql服务
(41条消息) Mysql的介绍和软件环境的部署_Claylpf的博客-CSDN博客
下面我们需要通过 Windows 和 Linux 上的 客户端连接工具 来实现连接Linux上的mysql服务
SQLyog,它是一个商业化的 MySQL 数据库管理工具,支持 Windows 操作系统,界面美观,功能强大,支持多种数据导入导出格式。
Navicat,它是一个商业化的 MySQL 数据库管理工具,支持 Windows、Linux 和 macOS 等操作系统,提供了丰富的功能和强大的数据管理能力。
MySQL Workbench,它是MySQL 官方提供的,是一个功能强大的 MySQL 数据库管理工具,支持 Windows、Linux 和 macOS 等操作系统。
可以使用MySQL客户端连接工具,例如命令行工具 mysql
或者 GUI 工具 MySQL Workbench
。
以下是使用命令行工具 mysql
连接其他Linux服务器上的MySQL服务器的步骤:
在目标Linux服务器上,安装MySQL服务器,并确保MySQL服务器已经启动。
在目标Linux服务器上,创建一个MySQL用户,并为该用户分配连接MySQL服务器的权限。
在本地Linux服务器上,打开终端窗口,输入以下命令连接目标Linux服务器上的MySQL服务器:
mysql -h <目标服务器IP地址> -u -p
其中,-h
参数指定目标服务器的IP地址或者主机名,-u
参数指定MySQL用户名,-p
参数表示需要输入MySQL用户的密码。
在输入密码后,就可以连接到目标Linux服务器上的MySQL服务器,并执行相应的SQL命令了。
需要注意的是,如果目标Linux服务器上的MySQL服务器使用了防火墙,需要确保将MySQL服务器的端口(默认是3306)添加到防火墙规则中,以允许其他Linux服务器连接到MySQL服务器。
Navicat的下载与安装教程 - 知乎 (zhihu.com)
点击连接下的Mysql
填入你的Mysql服务器的主机IP地址,以及密码
我们先尝试连接,但发现出现下面的问题
如何解决问题呢,我首先想到的是mysql服务器的防火墙把我拦截了,因此
我关闭了linux里的防火墙
但是问题还是没有解决,所有就只有可能是Mysql服务拒绝我们通过root用户去访问Mysql服务器,因此我们必须在Mysql服务器内部创建一个能够远程连接的用户 去连接mysql服务器
新建一个用户lpf,密码为123456,并给他授权,使我们可以远程登录mysql服务器
命令解释:
grant是mysql里的授权命令
all 表示所有的权限(如:select,update,delete,insert等)
on *.* 表示在所有的数据库上所有的表里,第一个*代表数据库,第二个*代表的是库里所有的表
to 'lpf'@'%' 给lpf用户授予以上权限,可以从任意ip地址远程连接过来 @只是分隔符,无意义,%代表任意IP地址,是mysql里的通配符
identified by '123456' 表示密码为123456
; 是mysql里的结束符号,必须要接
下面我们完成创建新的用户了,接下来就可以通过Navicat连接上mysql服务器了
如下图所示:
双击linux-mysql,如果显示如下图所示,则表示连接成功了
同样我们也可以使用SQLyog连接上虚拟机上的Mysql服务,基本连接步骤与Navicat十分相似。
或者直接安装mysql(yum install mysql -y)
我们将如下图所示,写如下命令:
其中 -u 表示登录用户 -p 表示用户密码 -h表示指定Mysql服务器的IP地址或者主机名
上图就是Linux通过Mysql命令行工具创建好连接的图片。
下面是在远程linux上创建表的过程
MySQL [(none)]> show databases; 展示数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQL [(none)]> create database sanchuang; 创建数据库
Query OK, 1 row affected (0.00 sec)
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sanchuang |
| sys |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]>
下面是Mysql服务器上的数据库的展示
root@(none) 20:44 mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sanchuang |
| sys |
+--------------------+
5 rows in set (0.00 sec)
root@(none) 21:27 mysql>
由上可知,远程linux服务器成功的连接上了Mysql服务器了
我们也可以在Windows上的Navicat看到创建的新数据库sanchuang的出现
由上面可以知道我们的Windows和远程Linux服务器成功的连接上了Mysql服务器了。
root@(none) 21:27 mysql>show processlist; #可以查看有哪些用户远程连接上了我的Mysql服务器上去了
+----+------+---------------------+------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+---------------------+------+---------+------+----------+------------------+
| 8 | root | localhost | NULL | Query | 0 | starting | show processlist |
| 9 | lpf | 192.168.2.5:50577 | sys | Sleep | 102 | | NULL |
| 10 | lpf | 192.168.2.5:50595 | sys | Sleep | 102 | | NULL |
| 12 | lpf | 192.168.2.215:59666 | NULL | Sleep | 432 | | NULL |
+----+------+---------------------+------+---------+------+----------+------------------+
4 rows in set (0.00 sec)
root@(none) 21:32 mysql>
实验完毕!!