羊蹓狼 发表于 前天 09:14

怎样设置本地MySQL数据库,实现数据库长途访问(Linux和Windows)

提示:文章写完后,目次可以自动天生,怎样天生可参考右边的帮助文档


前言

读完本文你将学会,怎样长途毗连到另一台电脑的数据库。提高开发效率。
一、创建可以长途访问的mysql用户

一般的,工作中会单独创建拥有不同功能的用户,来实现相应的功能。下面,我们将以实现恣意IP长途访问本地mysql全部数据库为例创建用户。
1、登录MySQL

首先,win + R 打开cmd,以管理员身份毗连到MySQL数据库,通常是root用户:
mysql -u root -p
体系会提示输入管理员用户的暗码,输入暗码后进入MySQL的命令行。
2、创建新用户( MySQL 5.7 版本之后可直接使用GRANT 语句)

在早期版本的 MySQL 中,创建用户和授予权限是分开的操作。须要先使用 CREATE USER 语句创建用户,再使用 GRANT 语句为用户授予权限。
但从 MySQL 5.7 版本开始,GRANT 语句在用户不存在时具备了创建用户的功能。
使用CREATE USER命令来创建一个新的MySQL用户。命令语法如下:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
‘username’:新用户的名称。
‘host’:指定该用户允许从哪个主机毗连。localhost表示只允许本地毗连,%表示允许从任何IP地址毗连。
‘password’:设置新用户的暗码。
按照我们的目标,创建用于长途毗连的用户,设置权限为恣意IP(设置恣意IP是方便自己使用,如有特别需求,特别设置)
create user 'remote'@'%' identified by '123456';
3、授予权限

常见权限有SELECT、INSERT、UPDATE、DELETE等。通常,GRANT命令用于分配权限。命令语法如下:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' IDENTIFIED BY 'password';
‘username’@‘host’:在 MySQL 里,用户是由 用户名 和 主机名 共同确定的,像 ‘username’@‘%’ 和 ‘username’@‘localhost’ 代表的是两个不同的用户。
ALL PRIVILEGES:授予用户对指定命据库的全部权限。
*. :表示对全部数据库或者表授予权限
授予全部权限

如果盼望用户拥有对全部数据库和表的完全访问权限,可以使用以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY 'password';
授予用户对指定表的部分权限

GRANT SELECT, INSERT ON test_db.test_table TO 'remote'@'%' IDENTIFIED BY 'password';
革新权限

在使用 GRANT 语句赋予权限之后,你须要革新权限,这样新的权限设置才气见效:
FLUSH PRIVILEGES;
二、MySQL设置文件设置

1. 定位设置文件

Windows体系设置文件位置

MySQL 的设置文件 my.ini 通常位于以下路径:
默认安装路径:C:\ProgramData\MySQL\MySQL Server X.X\my.ini
(ProgramData 是隐藏文件夹,需在资源管理器中启用「显示隐藏文件」)
自定义安装路径:C:\Program Files\MySQL\MySQL Server X.X\my.ini
(若通过 ZIP 包安装,路径大概为 C:\mysql-8.0.34-winx64\my.ini)
Linux体系设置文件位置

通常是:/etc/mysql/mysql.conf.d/mysqld.cnf
2. 编辑设置

Windows体系

使用记事本或其他文本编辑器打开 my.ini,找到 部分,修改或添加以下内容
# 允许所有 IP 连接(生产环境建议限制为特定 IP)
bind-address = 0.0.0.0

# 可选:设置字符集(避免乱码)
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Linux体系

找到 bind-address 这一行,将其值修改为 0.0.0.0 ,这表示允许全部 IP 地址举行毗连。
# 找到这一行
bind-address            = 127.0.0.1
# 修改为
bind-address            = 0.0.0.0
3. 重启服务

Windows体系

以管理员身份打开命令提示符,实行:
mysql服务名称大概不同,根据实际情况选择
net stop mysql
net start mysql
Linux体系

在 Linux 体系中可以使用以下命令重启:
sudo systemctl restart mysql
三、体系防火墙设置

设置Windows体系防火墙(开放 3306 端口)

手动添加端口规则

步调 1:搜刮并打开「高级安全 Windows 防火墙」。
体系设置搜刮防火墙,点击高级设置。
https://i-blog.csdnimg.cn/direct/84d52a810bf0494a8cbe9327de0165a5.png
步调 2:在左侧选择「入站规则」,点击「新建规则」。
步调 3:选择「端口」,点击「下一步」。
https://i-blog.csdnimg.cn/direct/724f9c20eddf4978ab8be40b0f964079.png
步调 4:输入端口号 3306,选择「TCP」,点击「下一步」。
https://i-blog.csdnimg.cn/direct/c45bd5d6cafb4dc8b13e5e3999c39b61.png
步调 5:选择「允许毗连」,点击「下一步」。
https://i-blog.csdnimg.cn/direct/7dbf4cd8047b44eea5c238ba8bdd4379.png
步调 6:勾选全部网络类型(域、专用、公共),点击「下一步」。
https://i-blog.csdnimg.cn/direct/059d18bc06114aaaa9261b8bfe6c9ad5.png
步调 7:定名规则(如 MySQL 3306),点击「完成」。
https://i-blog.csdnimg.cn/direct/876d93825cf84ef4907009efcf027d10.png
设置Linux体系防火墙

要确保防火墙允许 MySQL 服务的端口(默认是 3306)通过。
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
如果你使用的是 iptables 防火墙,可以使用以下命令开放 3306 端口:
sudo ufw allow 3306
四、总结

完成上述三步之后,只要保证网络通畅就可以长途毗连mysql数据库了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 怎样设置本地MySQL数据库,实现数据库长途访问(Linux和Windows)