湖南省建设工程造价总站网站,网站建设与运营 好考吗,网站开发方案目录,自己建的网站地址1、前言 因为要ip直接访问mysql#xff0c;故去修改bind-address参数#xff0c;按照mysql配置文件查找顺序是#xff1a;/etc/my.cnf、/etc/mysql/my.cnf、~/.my.cnf#xff0c;服务器上没有 /etc/my.cnf文件#xff0c;故去修改 /etc/mysql/my.cnf文件#xff0c;但是一…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]
port33062
bind-address0.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 --colorauto 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 (codeexited, status0/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]
port33062
bind-address0.0.0.0
mysqlx-bind-address 0.0.0.0重启mysql尝试使用ip登录mysql成功了。 成功躺完一次坑QAQ
参考博客 记一次Linux修改MySQL配置不生效的问题