我听说任何知道我的MySQL用户名和密码的人都可以访问它,即使它只监听localhost.

假设我的信息如下:

USER: root
PASS: 123456
Host: LOCALHOST (only)

外边(本地)的任何人怎么可能都能访问它?

推荐答案

如果将远程主机的访问权限限制为用户名和密码,则有人将无法从外部访问数据库.

您还可以将防火墙配置为只允许本地主机的3306(MySQL默认端口)流量.

Update

要设置用户,使其只能通过本地主机访问,请执行以下操作:

GRANT ALL PRIVILEGES ON *.* TO db_user @'localhost' IDENTIFIED BY 'db_passwd';
GRANT ALL PRIVILEGES ON *.* TO db_user @'127.0.0.1' IDENTIFIED BY 'db_passwd';

另外,将MySQL服务器绑定到本地地址.您可以通过编辑my.cnf[mysqld]部分来实现这一点:

[mysqld]
bind-address = 127.0.0.1

Database相关问答推荐

什么时候需要手动重新分析 PostgreSQL 中的表?

如何使用 Gramex FormHandler 动态(在运行时)创建或更改数据库模式

在保持抽象的同时将格式化文本存储在数据库中

将 .frm 和 .opt 文件导入 MySQL

免费的 SQL 比较工具

Entity Framework:如何检测对数据库的外部更改

将 `tsv` 文件插入 postgresql 数据库

文件访问速度与数据库访问速度

数据库表中的索引有什么缺点?

数据库设计—应该避免一对一的关系吗?

更改列名 Rails

处理hibernate entities上的数据库视图的优雅方法?

生成和读取条形码

我什么时候应该考虑使用内存数据库,需要注意什么问题?

使用十进制数据类型(MySQL / Postgres)是否会影响性能

判断Android中的应用程序数据库中是否存在列

如何在 SQL Server 中生成并手动插入唯一标识符?

单元测试数据库

为什么在数据库设计中使用一对一的关系?

为什么 Rails 迁移在应用程序中定义外键而不在数据库中定义外键?