远程连接mysql

文章描述了作者在阿里云WindowsServer2012R2上安装的MySQL5.7.26遇到的问题,即在本地连接正常,但通过Navicat从远程访问时遭遇1045错误,提示权限问题。解决方法涉及调整MySQL用户权限设置。

今天在自己的阿里云服务器上(Window Server2012 R2)安装了一个MySQL5.7.26,在阿里云服务器中通过本地链接是正常的,但是当在自己的电脑上使用Navicat连接是提示:1045 - Access denied for user 'root'@'118.31.158.192'(using password:YES) 异常

cmd 进入

 mysql -uroot -p

GRANT ALL PRIVILEGES ON *.* TO '登录用户名(如:root)'@'%' IDENTIFIED BY '登录密码(如:123456)' WITH GRANT OPTION;

FLUSH PRIVILEGES;

要实现远程连接 MySQL,可按以下方法操作: ### 检查 MySQL 服务配置 确保 MySQL 服务允许远程连接。编辑 MySQL 配置文件(通常为 `my.cnf` 或 `my.ini`),找到 `bind-address` 项,将其值设置为 `0.0.0.0` 以允许所有 IP 地址连接,示例如下: ```plaintext [mysqld] bind-address = 0.0.0.0 ``` 修改完成后,重启 MySQL 服务。在 Linux 系统中,使用如下命令: ```bash sudo systemctl restart mysql ``` ### 创建允许远程连接的用户 登录 MySQL 服务器,使用以下 SQL 语句创建一个新用户并授予其远程连接权限: ```sql -- 创建新用户 CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; -- 授予该用户所有权限 GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'; -- 刷新权限 FLUSH PRIVILEGES; ``` 上述代码中,`'newuser'` 为新用户名,`'password'` 为用户密码,`'%'` 表示允许从任何 IP 地址连接。 ### 开放 MySQL 端口 确保服务器的防火墙开放了 MySQL 默认端口 3306。在 Linux 系统中,使用 `firewalld` 防火墙,可执行以下命令: ```bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` ### 使用客户端工具进行远程连接 可以使用多种客户端工具进行远程连接,以下是使用 `mysql` 命令行工具和 Navicat 工具的示例: #### 使用 `mysql` 命令行工具 在本地终端中,使用以下命令连接远程 MySQL 服务器: ```bash mysql -h remote_server_ip -u newuser -p ``` 其中,`remote_server_ip` 是远程 MySQL 服务器的 IP 地址,`newuser` 是之前创建的允许远程连接的用户名。执行该命令后,输入用户密码即可完成连接。 #### 使用 Navicat 工具 1. 打开 Navicat 软件,点击“连接” -> “MySQL”。 2. 在弹出的“连接设置”窗口中,填写以下信息: - **主机**:远程 MySQL 服务器的 IP 地址。 - **端口**:MySQL 服务端口,默认为 3306。 - **用户名**:之前创建的允许远程连接的用户名。 - **密码**:该用户的密码。 3. 点击“测试连接”按钮,若连接成功,点击“确定”保存连接配置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值