如何远程连接MySQL数据库

article/2025/8/8 15:19:23

  新安装的 MySQL 只有一个 root 用户,默认不开启远程连接。下面以 Ubuntu 系统下的 MySQL 为例,说明如何远程连接 MySQL 数据库。

  • 登录 root 用户 mysql -uroot -pyongdu
  • 查看 mysql 数据库中的所有表
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hr                 |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
  • 切换到 mysql 数据库
  • 查看有哪些表
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)
  • 查看root用户的配置
mysql> select host,user from user where user = 'root';
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost | root |
| myubuntu  | root |
+-----------+------+
4 rows in set (0.00 sec)
  • 发现 root 用户配置的 host 信息是 localhost 或者 127.0.0.1,所以在本机可以通过 localhost 或者 127.0.0.1 连接到 mysql 数据库
mysql> quit
Bye
ubuntu@MyUbuntu:~$ mysql -uroot -pyongdu -h127.0.0.1
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 46
  • 其中-h代表指定的 ip 主机,用本机的 ip 尝试连接 mysql -uroot -pyongdu -h 192.168.43.246 发现无法登陆,这是因为 root 只允许 localhost 和 127.0.0.1 进行登陆
ubuntu@MyUbuntu:~$ mysql -uroot -pyongdu -h 192.168.43.246
ERROR 1045 (28000): Access denied for user 'root'@'192.168.43.246' (using password: YES)
  • 想要进行远程连接,可以考虑增加一个用户 GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
  • 这条指令是增加一个 admin 用户,密码为 admin,连接的主机设置为“%”,代表任意的 ip 可以连接,同时给 admin 赋权进行所有操作
  • 执行 flush privileges;,使上述设置生效
  • 再次查看 user 表,按 admin 查询
mysql> select host,user from user where user = 'admin';
+------+-------+
| host | user  |
+------+-------+
| %    | admin |
+------+-------+
1 row in set (0.00 sec)
  • 发现 admin 用户创建成功,且 host 对应的是“%”,这样便可以尝试远程连接,有些情况下可能还会连接失败。有的主机还有对 mysql 启动时的设置:/etc/mysql/my.cnf bind-address = 127.0.0.1
    在这个配置文件里也绑定了 ip,可用命令 sudo find / -name my.cnf 查找到该文件,将 bind-address 这一行注释掉,或者改为 0.0.0.0
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1
#
# * Fine Tuning
  • 然后重启 mysql 服务 sudo service mysql restart
  • 使用 admin 用户进行远程连接
ubuntu@MyUbuntu:~$ mysql -h 192.168.43.246 -uadmin -padmin
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 36
  • 成功登陆,下面在 windows 下用 Navicat 工具连接到 msql 数据库,虚拟机和主机需联网
    在这里插入图片描述
  • 测试成功后点击确定
    在这里插入图片描述
  • 连接完成,此时便可用图形工具操作数据库了

http://chatgpt.dhexx.cn/article/RCWr6J3i.shtml

相关文章

远程连接数据库

Windows系统(远程方) Windows系统功能 1. 启动telnet客户端 需要启动 telnet客户端( 安装完,最好重启电脑 ) telnet 连通性测试: Win r -> cmd -> Telnet www.baidu.com 80 回车后:出现…

远程连接SQL server 数据库

开发工具与关键技术: ssms SQL 作者:GuanLW 撰写时间:2022/3/28 第一步:打开电脑的防火墙,在高级设置里面添加入站和出站规则(控制面板>系统和安全>Windows defender防火墙>高级设置&#xff…

如何远程连接SQLServer数据库

如何远程连接SQLServer数据库 准备工作 1.打开 选中如下的连接方式 连接成功后就会出出现 2.连接成功后:右键设置属性 安全性设置:如下图所示 设置连接属性: 设置完成之后点击完成!!! 3.打开 启动sqlSe…

Java远程连接数据库——远程连接MySQL数据库,操作和管理MySQL数据库

目录 Java与MySQL 1.MySQL远程连接情况 1.1.查看权限情况 1.2.Java连接情况 2.MySQL远程连接设置 2.1.IP地址开放设置 2.2.开放3306端口 3.总结 Java与MySQL 上一篇笔记已经写好了MySQL的安装使用与Java连接MySQL的操作,但那仅仅是本地连接,我们都…

如何远程连接数据库

大家在本地连接自己的数据库可能没有问题,但当服务器的时候就需要远程连接了,那么如何能够让远程的数据库被我们访问到呢,接下来就具体执行一下相关的操作,以我的为例,连接虚拟机中的数据库,操作系统是linu…

十行代码编写一个Python小游戏,你准备好了吗?

准备好了吗?我们即将开始激动人心的游戏编程之旅。 或许你之前学习过一点编程,但若是你从没接触过游戏编程,那么你仍然会对游戏程序的运行感到不解。游戏程序不像计算一个公式或谜题,得到答案之后程序就结束了,游戏程序…

python小游戏实现代码

早上逛CSDN首页就见到这么一篇教程。看了一下很有意思,就马上动手实现了一下。看看效果吧: 完整代码: # -*- coding: utf-8 -*- # 1 - Import library import pygame from pygame.locals import * import math import random # 2 - Initialize the game keys = [False, Fals…

python简单小游戏代码教程,Python简单小游戏代码

球球各位大神怎么用python写一个猜词小游戏的代码? key input(请输入一个单词:)description input(输入单词描述:)chance 5mark 5print(现在开始游戏)print(description \t 这是单词的描述,请你输入这个单词: )for i in ra…

python小游戏代码大全-Python小游戏之300行代码实现俄罗斯方块

前言 本文代码基于 python3.6 和 pygame1.9.4。 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块。但是想到旋转,停靠,消除等操作,感觉好像很难啊,等真正写完了发现,一共…

python编程游戏代码大全,python简单的小游戏代码

大家好,本文将围绕python编程一个最简单游戏代码展开说明,20行python代码的入门级小游戏是一个很多人都想弄明白的事情,想搞清楚python游戏编程入门游戏代码需要先了解以下几个事情。 一、石头剪刀布游戏 目标:创建一个命令行游戏…

干货来啦!!!二十种Python代码游戏源代码分享

学Python中,自我感觉学的还不错的亚子~想做点什么来练练手,然后我疯狂的找各种小游戏的教程源码什么的,于是我就疯狂的找呀找呀,就找到了一大堆,哈哈哈 毕竟我是从小就有一个游戏梦,现在就弥补一下自己小时…

python小游戏代码大全-python小游戏实现代码

早上逛CSDN首页就见到这么一篇教程。看了一下很有意思,就马上动手实现了一下。看看效果吧: 完整代码: # -*- coding: utf-8 -*- # 1 - Import library import pygame from pygame.locals import * import math import random # 2 - Initialize the game keys = [Fal…

python一行代码制作20款经典游戏

今天分享一个有趣的Python游戏库freegames,它包含20余款经典小游戏,像贪吃蛇、吃豆人、乒乓、数字华容道等等,依托于标准库Turtle。 我们不仅可以通过1行代码进行重温这些童年小游戏,还可以查看源码自己学习下游戏编写&#xff0…

python简单小游戏代码教程,python小游戏程序源代码

球球各位大神怎么用python写一个猜词小游戏的代码? key input(请输入一个单词:)description input(输入单词描述:)chance 5mark 5print(现在开始游戏)print(description \t 这是单词的描述,请你输入这个单词: )for i in ra…

Python代码,能玩30多款童年游戏!这些有几个是你玩过的

大游戏小游戏有千千万万,这些小游戏应该只有90后才玩过和懂吧 儿童节即将到来,虽然秃头程序员没有头发,但是童心还是一直都在的,今天就分享一些私藏的童年游戏,十几行代码就能进入使用Python开发的小游戏快乐玩耍&…

一口气用Python写了13个小游戏(附源码)

仅限技术学习参考 分享13个游戏源码,可以自己复现玩玩,研究下里面的编程逻辑,对学习编程(特别是初学者)应该会有很大帮助。 1、吃金币 源码分享: import os import cfg import sys import pygame import…

JSP校验必填项

输入框为input标签,在保存的function() 里增加校验;

android textview 必填,在android中如何使用Html渲染的方式实现必填项前面的*号

本篇文章主要介绍了android中使用Html渲染的方式实现必填项前面的*号示例,具有一定的参考价值,有兴趣的可以了解一下 项目的个人基本信息UI界面效果图如下,有一个红色的*号,并且跟它挨着的文字颜色不一样。简友们,你们…

php邮箱必填,WordPress移除用户新注册时邮件必填选项(注册不填邮箱/邮箱非必填)...

使用WordPress搭建的网站是支持用户注册做商城网站的,注册的时候默认要求用户填写一个邮箱,并且是必须填写的,而某些网站情况特殊,可能并不需要强制填写邮件,所以我们可以通过下面的代码把强制填写邮件功能改为必填项目…

element ui表单必填_详解element-ui设置下拉选择切换必填和非必填

? 需求 默认都是必选 下拉选择的时候 选择必填,活动名称为必填,需要校验和显示* 选择非必填,活动名称不做校验,隐藏* ? 初始校验规则 经测试,网上其他的方式都没有实现需求,动态切换rules中的required没有…