当前位置: 首页 > news >正文

mysql配置bind-address不生效

1、前言

  因为要ip直接访问mysql,故去修改bind-address参数,按照mysql配置文件查找顺序是:/etc/my.cnf/etc/mysql/my.cnf~/.my.cnf,服务器上没有 /etc/my.cnf文件,故去修改 /etc/mysql/my.cnf文件,但是一直不生效。

2、环境

mysql版本:8.0.34-0ubuntu0.20.04.1 (select version();sql查询)
系统:ubuntu 20.04

3、确定原因

3.1、确定配置文件路径

使用命令:

mysql --help|grep 'my.cnf'

输出:

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

由于没有找到/etc/my.cnf 文件,故确定首先找到的配置文件为/etc/mysql/my.cnf

3.2、尝试寻找文件不生效问题

3.2.1、配置文件

初始配置文件配置:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

增加启动参数后:

[mysqld]
port=33062
bind-address=0.0.0.0
mysqlx-bind-address = 0.0.0.0!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

修改启动端口和绑定地址,发现端口修改生效,但是绑定地址不生效确定配置文件没问题
看了下mysql官方文档,我都以为我拼写错误了,修改了格式,依然无效。

原文:bind_address,后知后觉,配置文件写法是bind-address,这里写的bind_address是数据库的参数名

3.2.2、验证当前绑定地址

  • 查询数据库的bind_address参数
SELECT VARIABLE_NAME, VARIABLE_VALUE FROM performance_schema.global_variables 
WHERE VARIABLE_NAME = 'bind_address';

看值是否为127.0.0.1

  • 查看系统端口监听:
netstat -anp | grep 3306

看是否出现127.0.0.1:3306

  • 查看是否能指定ip登录上:
mysql -u root -proot -h 你的ip -P 33062

看是否能登录上,不能登录的,先把用户管理里面用户的host改为%,表示为全部ip都能访问这个用户,这里测试环境,使用了root测试,正式环境,最好不要给root用户随便ip都能访问
访问不了的报错:

ERROR 2003 (HY000): Can’t connect to MySQL server on ‘175.27.191.203:33062’ (111)

3.2.3、查看是否服务启动参数问题

  • 直接查看进程
ps -ef|grep "mysql"

输出:

mysql 2591855 1 0 10:59 ? 00:00:01 /usr/sbin/mysqld
root 2594993 2566566 0 11:12 pts/0 00:00:00 grep --color=auto mysql

可以看到启动没有带任何参数

  • 查看mysql.server有没异常
    mysql是直接使用apt命令安装的,所以默认有server命令
systemctl status mysql

输出:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-09-10 10:59:52 CST; 14min ago
Process: 2591830 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 2591855 (mysqld)
Status: “Server is operational”
Tasks: 38 (limit: 2272)
Memory: 372.3M
CGroup: /system.slice/mysql.service
└─2591855 /usr/sbin/mysqld

Sep 10 10:59:51 VM-0-15-ubuntu systemd[1]: Starting MySQL Community Server…
Sep 10 10:59:52 VM-0-15-ubuntu systemd[1]: Started MySQL Community Server.

可以看到loaded行的service文件位置,查看后,没有什么异常。

4、解决问题

  最后解决肯定还是百度找到类似的问题,就是看到有一篇博客说找到mysqld.cnf文件,这就是使用find命令,我之前也尝试过在那几个配置文件手动找,没找到,使用find命令:

find / -name 'mysqld.cnf' -ls

输出:

782051 4 -rw-r–r-- 1 root root 2220 Sep 10 10:59 /etc/mysql/mysql.conf.d/mysqld.cnf

原来有这个文件,故进查看配置文件,里面有完整的配置文件模板,是要找的文件,修改配置项bind-addres、mysqlx-bind-address为0.0.0.0。
接着使用

service mysql restart

  重启mysql,奇迹发生了。又是后知后觉,为什么前面port配置生效,但是bind-addres配置不生效,因为这个模板文件里面port配置项是注释的,bind-address是默认的,我写的配置,被后续导入的文件夹里面的配置覆盖了,导致不成功。
  知道是覆盖原因,那么,我们恢复一下之前修改的mysqld.cnf文件,将最先的配置,稍微改下顺序,那是不是也行。

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/[mysqld] 
port=33062 
bind-address=0.0.0.0
mysqlx-bind-address = 0.0.0.0

重启mysql,尝试使用ip登录mysql,成功了。
成功躺完一次坑QAQ

参考博客:
记一次Linux修改MySQL配置不生效的问题

http://www.lryc.cn/news/162093.html

相关文章:

  • Linux相关指令(下)
  • Codeforces Round 855 (Div 3)(A - F)
  • Friend.tech(FT):社交媒体金融的未来,真的如此美好吗?
  • yolov7中Concat之后加注意力模块(最复杂的情况)
  • 解除百度安全验证
  • Codeforces Round 731 (Div 3)(A - F)
  • Python的sort()与sorted()函数详解
  • 用python实现基本数据结构【04/4】
  • “必抓!”算法
  • 【监控系统】Promethus整合Alertmanager监控告警邮件通知
  • 【韩顺平】Linux基础
  • 好奇一下各个大模型对华为mate60系列的看法
  • UMA 2 - Unity Multipurpose Avatar☀️五.如何使用别人的Recipe和创建自己的服饰Recipe
  • 代码随想录训练营第五十六天| 583. 两个字符串的删除操作 、72. 编辑距离
  • hive解决了什么问题
  • Lumion 和 Enscape 应该选择怎样的笔记本电脑?
  • ICCV 2023 | MoCoDAD:一种基于人体骨架的运动条件扩散模型,实现高效视频异常检测
  • Mac电脑怎么使用NTFS磁盘管理器 NTFS磁盘详细使用教程
  • Java设计模式-结构性设计模式(代理设计模式)
  • 线性空间、子空间、基、基坐标、过渡矩阵
  • 【MySQL】CRUD (增删改查) 基础
  • Socks5代理IP:保障跨境电商的网络安全
  • macOS通过钥匙串访问找回WiFi密码
  • Debian11之稳定版本Jenkins安装
  • kakfa 3.5 kafka服务端处理消费者客户端拉取数据请求源码
  • 【Linux】进程概念I --操作系统概念与冯诺依曼体系结构
  • BRAM/URAM资源介绍
  • 分享一个基于python的个性推荐餐厅系统源码 餐厅管理系统代码
  • Mysql5.7开启SSL认证且支持Springboot客户端验证
  • 微信小程序的页面滚动事件监听