mysql - 无法在 Linux 上设置对 MySQL 服务器的远程访问
问题描述
我正在尝试在我的 Debian Linux 系统上设置我的 MySQL 服务器以进行远程访问。但是,我遇到了无法设置“绑定地址”变量的问题。我试图使用命令设置它mysqladmin --bind-address=0.0.0.0
并返回mysqladmin: unknown variable 'bind-address=0.0.0.0'
.
我也试过插入这个:
[mysqld]
bind-address = 0.0.0.0
进入/etc/mysql/my.cnf
以及/etc/mysql/conf.d/mysql.cnf
通过运行重新启动服务器service mysql restart
我会跑lsof -Pni :3306
看看它是否从配置文件中获取了绑定地址并在其本地 IP 之外进行侦听,它会返回
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 28978 mysql 20u IPv4 148539 0t0 TCP 127.0.0.1:3306 (LISTEN)
这向我表明它仍然只在本地收听。我检查了该/etc/default/mysql
文件以确保没有任何启动选项集阻止我远程访问它。
我尝试将协议选项设置为“TCP”和“SOCKET”,但都不起作用。
如何让 MySQL 在其本地网络之外进行侦听?提前致谢。
解决方案
检查mysql版本
mysql --version
bind-address 的默认值如下所示:
- 默认值 (>= 5.6.6) *
- 默认值 (<= 5.6.5) 0.0.0.0
所以实际上不需要为上面的mysql版本设置绑定地址。
检查mysql配置文件位置
$ which mysqld /usr/local/mysql/bin/mysqld $ /usr/local/mysql/bin/mysqld --verbose --help | grep -A 1 "Default options" Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
检查上述配置文件中是否有任何绑定地址配置。
重启mysqld服务
service mysqld restart
确认创建的 mysql 用户
user@'%'
允许用户在外部连接 mysql。
推荐阅读
- css - 在非根 Nginx 中部署角度 coreui 时无法加载 CSS 样式图像
- c# - cosume webservice应用程序上没有端点
- android - 飞镖 2 中的 AES 加密
- html - 如何更改引导导航栏的悬停文本
- javascript - 由于标签“文件:”,脚本无法加载
- kotlin - 我什么时候应该让我的正常功能暂停功能?
- python-3.x - TypeError:输入类型不支持 ufunc 'isnan'
- group-by - 扩展列表以包括 SAS 中的因子变换
- r - flexboard 闪亮的桌子水平和垂直滚动条不起作用
- check-constraints - SQL Server:检查约束表达式