首页 > 数据库 >解决虚拟机上的mysql只能被本地访问这个问题

解决虚拟机上的mysql只能被本地访问这个问题

时间:2023-01-14 13:45:12浏览次数:64  
标签:root 虚拟机 访问 host user 本地 mysql 安装

为了让任意IP都能访问到该mysql,我们可以从两个方面来考虑

 

1、查看mysql这个数据库(安装mysql时默认会创建的一个数据库)中user表里root账号所对应的host是不是为%

 注:当host的值为%时,表示可被任意IP访问;当host的值为localhost时,表示只能被本地访问。

 

一般来说,若不做任何修改,新安装的mysql,root账号所对应的host为localhost;所以我们只需将localhost改为%即可。

# 登入mysql
mysql -u root -p

# 选择mysql数据库
use mysql;

# 查看user表
select user, host from user;

# 修改host
update user set host='%' where user='root';

# 刷新

flush privileges;

至此,一般可解决任意IP访问该mysql数据库。

 

但事情往往又不是那么简单!

由于现在最新版的Ubuntu或centos都是默认安装mysql8.x;而实际开发过程用的更多的是5.7.

故此不能使用默认安装方式安装mysql,本人查看了网上资料,亲自试验了使用deb压缩包安装的方法。

具体安装方法:https://blog.csdn.net/m0_46470316/article/details/111127185

注:这种手动安装方式比默认安装麻烦多了,且容易出错;但目前还没有发现更简单的方法安装低版本的MySQL。

好不容易安装成功,但你会发现无法远程连接该数据库,只能本地访问,即使用上了第一种方法将host改为%都没用。

 

此问题根本原因没有去深究,我猜想也许和下载的.deb包中的默认配置有关有;具体解决步骤如下:

# 查看mysql安装目录
whereis mysql        # 一般来说配置文件在/etc/mysql中
# 进入/etc/mysql
cd /etc/mysql
# 编辑my.cnf文件,插入如下两行代码(表示允许任意ip地址访问)
[mysqld]
bind-address=0.0.0.0

# 重启mysql
sudo service mysql restart

# 若后续出现如下问题请参考https://www.cnblogs.com/csyblog/p/10670802.html

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

至此,我遇到的问题终于解决;

若有后续,随缘补充。

标签:root,虚拟机,访问,host,user,本地,mysql,安装
From: https://www.cnblogs.com/ReturnOfTheKing/p/17051476.html

相关文章

  • MySQL——一些命令
    一、基本的分析命令1、explain+SQL语句:查看执行计划2、showcreatetabletable1:查看table1的创建SQL3、showindexesfromtable1:查看table1所有的索引4、showtables......
  • 虚拟机配置
    软件配置网络连接如果要更改设置,直接点击就OKVmnet0是桥接网络,可以和外部联网Vmnet1-7是和外界无联系的局域网Vmnet8是NAT网络地址转化,可以和外部联网NAT:......
  • 认真研究MySQL的主从复制(一)
    【1】主从复制概述①如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合使用,当有请求的时候,首先会从缓存中进行查找。如果存在就直接取出,如果不存在再......
  • Idea更新本地仓库maven构建索引
    前言因为有些jar包不能直接下载至本地仓库,导致依赖不上,所以我们需要反向安装​​idea反向安装jar包到仓库​​但是有个问题,安装成功后,照常设置,本地仓库有了jar包,但是idea并......
  • MySQL_3_执行计划
    MySQL的核心是存储引擎。  一、查询过程1、客户端向MySQL服务器发送查询请求。2、检查查询缓存,缓存命中直接返回数据,否则进入下一阶段。3、服务器进......
  • mysql在centos7中的安装
    1.执行以下命令,下载并安装MySQL官方的YumRepository。wgethttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum-yinstallmysql57-community......
  • mysql多条记录合并为一行
    在某些情况下,我们需要把mysql查询出的多条记录合并为一行,可以使用GROUP_CONCAT函数,把结果用指定分隔符拼接起来。1.正常情况下:SELECTnamefromproduct_stock;结果为:2.现在......
  • mysql的四种隔离级别
    其几天看书,看到书中对这个问题的解释,模棱两可,用专有名词解释专有名词,有点扯。个人认为,解释一个关键词时,不应该再给读者引入一个新的对他可能陌生的关键词来做解释,让人云里雾......
  • mysql 字符串转日期
    在mysql做数据库迁移时,如果数据不过程序,纯sql操作,那么将字符串转为日期格式可以使用如下方式:SELECTDATE('2017-02-11')SELECTDATE('2017/02/11')SELECTSTR_TO_DATE('2015......
  • mysql查看数据库和表使用空间
    –1.切换USEinformation_schema;–2.查看数据库使用大小SELECTconcat(round(sum(data_length/1024/1024),2),'MB')ASDATAFROMTABLE......