mysql远程访问的设置

本文介绍如何配置MySQL数据库以允许远程访问。包括激活网络设置、授予远程IP访问权限等步骤,并提供具体命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

登陆以后运行以下命令,给予远程访问客户端权限..
grant all on *.* to 'remote'@'172.16.21.39' identified by 'password';
remote表示用户名.
'172.16.21.39' 远程ip地址
password表示远程登陆密码.
默认状况下,出于安全考虑,mysql数据库屏蔽了远程访问功能。 然而在许多状况下,你需要在家

或者从web程序去访问远端数据库服务器,这就相当麻烦了。

第一步: 激活网络设置
你需要编辑mysql配置文件my.cnf.

通常状况,my.cnf放置于在以下目录:
/etc/mysql/my.cnf (Debian linux)
/etc/my.cnf (Red Hat Linux/Fedora Linux)
/var/db/mysql/my.cnf (FreeBSD)

# vi /etc/my.cnf
然后用vi编辑my.cnf,修改内容从以下行:

[mysqld]

你所需要:
1. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问
2. 增加行bind-address = 65.55.55.2,替代65.55.55.2 为你的服务器地址
修改后,配置为:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 65.55.55.2
# skip-networking
....
..

保存并关闭配置文件
重启mysql服务器:# /etc/init.d/mysql restart

第二步, 给远程ip授访问权限
1. 以root身份登陆mysql # mysql -u root -p
2. 授权给新数据库
如果你有一个新的数据库名称为foo。用户bar需要在客户端地址为202.54.10.20上访问。

在服务器端执行 (授权法):
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

如何给以存在的数据库授权?

如果用户 webadmin 经常在客户端地址202.54.10.20 访问 webd数据库,那么在服务器端执行的命

令应该为(改表法):

mysql> update db set Host='202.54.10.20' where Db='webdb';
mysql> update user set Host='202.54.10.20' where user='webadmin';

第三步: 执行exit命令退出mysql环境,

第四步 测试
From remote system type command:
$ mysql -u webadmin –h 65.55.55.2 –p

注解;
-u webadmin: webadmin为mysql的用户名
-h IP or 域名: 65.55.55.2 is MySQL server IP address or hostname (FQDN)
-p : 密码提示
你也可以使用telnet去连接远程的3306端口 $ telnet 65.55.55.2 3306

笔者注:

这篇文章解决了我在suse环境中的mysql远程访问问题。但是实际操作中,my.cnf似乎并不是特别

重要。在我的操作中,my.cnf创建和修改没有执行(忽略第一步)。最重要的步骤应该是第四步
GRANT ALL ON b2c.* TO root@'5.179.201.86' IDENTIFIED BY '';
其中b2c为所要访问的远程数据库名,5.179.201.86为mysql客户端主机的ip地址,也就是你的机器

ip地址。
有个小细节需要注意。如果你的服务器装了防火墙的话,需要打开3306的访问,否则也会连接不上

### 配置Windows上MySQL以允许远程访问 #### 安装MySQL服务 确保已经安装了MySQL数据库管理系统。这可以通过下载并执行官方的MySQL安装程序来完成[^2]。 #### 修改防火墙设置 为了使外部设备能够通过网络连接到本地计算机上的MySQL服务器,需调整操作系统的防火墙规则。对于Windows操作系统而言,在控制面板中的高级安全Windows防火墙部分创建入站规则,允许来自特定端口(默认情况下为3306)的数据包进入。 #### 编辑MySQL配置文件 找到`my.ini`或`my.cnf`文件的位置,默认路径通常位于`C:\ProgramData\MySQL\MySQL Server X.Y\`目录下(X.Y代表版本号)。编辑此文件,修改绑定地址参数: ```ini [mysqld] bind-address=0.0.0.0 ``` 上述更改使得MySQL监听所有可用IP接口而不是仅限于localhost/127.0.0.1[^1]。 #### 创建具有适当权限的新用户账户 登录至MySQL命令行工具作为root或其他具备相应权利的角色,执行如下SQL语句建立新账号,并赋予其对目标数据库的操作许可: ```sql CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'; FLUSH PRIVILEGES; ``` 这里%表示任何主机都可以使用该用户名进行认证;如果希望限定某些特定客户端,则应替换为具体的IP地址或者域名。 #### 测试远程连接功能 最后一步是在另一台机器上尝试利用刚创建好的凭证信息去建立与MySQL实例之间的TCP/IP链接,验证一切正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值