mysql 第20章 允许远程特定ip访问 mysql 第20章 允许远程特定ip访问

2022-09-23

1、登录

mysql -u root -p

之后输入密码进行登录

2、权限设置及说明

2.1、添加远程ip访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.11.12' IDENTIFIED BY 'FEFJay' WITH GRANT OPTION;
flush privileges;

2.2、命令解释

第一行中,10.10.11.12 是阿里云内网的一个地址,这个是允许远程访问的IP的值。自行改为其他值。

root 是账户名,后面的 FEFJay 是密码。 即,允许来自 10.10.11.12 的连接并使用 root 账户和 FEFJay 这个密码进行访问。

ALL PRIVILEGES ON 后面的 *.* 表示所有数据库,即完全访问权限,可以指定为特定数据库。 

而 IP 这里,可以使用 % 来表示所有 IP。 

第二行是使设置立刻生效。

2.3、注意事项

记得开放服务器的 3306 端口

3、本质

以上所有操作,其实就是在 mysql 库的 user 表,添加了一条新的记录,相应的: Host=特定ip,User=允许登录的用户名,Password=密码 等等。

4、远程速度慢

当一个新的客户端连接到 mysqld 时,mysqld 会产生一个新的线程来处理这个请求。这个线程首先会检查主机名是否在缓存中存在,如果不存在,它将尝试解析这个主机名。

你可以通过添加–skip-name-resolve 参数启动 mysqld 来禁用 DNS 主机名查询。但是这将导致你在 MySQL 的授权表中只能使用 IP 数字。

如果你使用一个很慢的 DNS 和许多主机,你可以通过添加–skip-name-resolve 禁用域名查询或通过增加 HOST_CACHE_SIZE 定义的值(默认值: 128)并重新编译 mysqld 来提升性能。

你可以通过–skip-host-cache 参数禁用主机名缓存。要清空主机名缓存,可以执行一个 FLUSH HOSTS 语句或执行 mysqladmin 中的 flush-hosts 命令实现。

要完全禁用 ICP/IP 连接,请添加 –skip-networking 启动 mysqld。

my.cnf 里面添加

[mysqld]
skip-name-resolve

禁用 DNS 解析,这样连接速度正常的快很多了

阅读 982