我正在尝试在我的debian linux系统上设置mysql服务器,以便进行远程访问。但是,我遇到了一个无法设置“bind address”变量的问题。我试图用命令设置它 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
文件以确保没有任何启动选项集阻止我远程访问它。
我尝试过将protocol选项设置为“tcp”和“socket”,但都不起作用。
如何让mysql在本地网络之外监听?提前谢谢。
2条答案
按热度按时间sbtkgmzw1#
检查mysql版本
mysql --version
绑定地址的默认值如下:默认值(>=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。0sgqnhkj2#
将以下内容添加到文件:
保存文件并退出。