要实现mysql数据库的远程访问,必须修改配置文件中的bind-address为0.0.0.0、创建具有远程访问权限的用户并刷新权限、开放操作系统防火墙的3306端口,三者缺一不可,且需确保mysql服务已重启生效,最终通过网络连通性测试完成验证。

本地安装MySQL数据库服务器,首先你得确保操作系统有足够的资源,比如内存和硬盘空间,并且系统是支持MySQL的(Windows、macOS、各种Linux发行版都行)。至于远程访问,核心在于修改MySQL的配置文件允许外部连接,为远程用户设置访问权限,以及在操作系统层面开放对应的网络端口。这几步做到了,基本上就能搞定。
说实话,这事儿不难,但细节决定成败。
本地MySQL数据库服务器必备条件:
本地MySQL配置远程访问设置:
这才是重点,也是很多人容易踩坑的地方。
修改MySQL配置文件 (my.cnf
my.ini
/etc/mysql/my.cnf
/etc/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
my.ini
bind-address
127.0.0.1
0.0.0.0
# 允许所有IP连接 bind-address = 0.0.0.0
或者,如果你知道远程连接的具体IP,也可以指定那个IP,这样更安全。
创建或修改MySQL用户权限:
mysql -u root -p
remote_user
your_password
%
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; FLUSH PRIVILEGES; -- 刷新权限,这步很重要
如果你只想让这个用户访问某个特定数据库,比如
my_database
GRANT ALL PRIVILEGES ON my_database.* TO 'remote_user'@'%'; FLUSH PRIVILEGES;
甚至可以指定从特定IP连接:
CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'192.168.1.100'; FLUSH PRIVILEGES;
记住,
root
root
root
%
配置操作系统防火墙:
ufw
sudo ufw allow 3306/tcp sudo ufw enable # 如果ufw没启用 sudo ufw status
如果用
firewalld
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload
开放远程访问听起来很方便,但安全问题不容忽视。我个人在处理这类需求时,安全总是放在第一位。
ALL PRIVILEGES
root
123456
password
root
%
'user'@'192.168.1.100'
遇到连不上的时候,别急着骂娘,一步步排查通常能找到问题。我见过太多次,都是些小细节没注意到。
bind-address
my.cnf
my.ini
bind-address = 127.0.0.1
%
GRANT
FLUSH PRIVILEGES
ufw
firewalld
ping
核心原理都是一样的,无非是文件位置和命令略有差异,就像说普通话和方言,都能听懂。
my.ini
C:\Program Files\MySQL\MySQL Server 8.0\my.ini
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
/etc/my.cnf
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
/usr/local/etc/my.cnf
/usr/local/mysql/my.cnf
netsh advfirewall firewall add rule name="MySQL" dir=in action=allow protocol=TCP localport=3306
sudo ufw allow 3306/tcp
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables
pfctl
net stop mysql
net start mysql
sudo systemctl restart mysql
sudo systemctl restart mysqld
sudo service mysql restart
sudo /etc/init.d/mysql restart
mysql.server restart
尽管这些细节有差异,但MySQL内部的用户权限管理(
GRANT
FLUSH PRIVILEGES
以上就是本地安装mysql数据库服务器必备条件 本地mysql配置远程访问设置的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号