SQLyog连接不上CentOS8上MySQL数据库解决办法

本文介绍如何在CentOS上配置MySQL数据库以支持远程访问。主要内容包括:安装并启动防火墙、开放3306端口、配置MySQL用户权限等步骤。

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

1、查看防火墙状态

service iptables status

若出现以下问题,说明没有安装iptables-services这个包。
在这里插入图片描述
那么就按照以下安装

yum install iptables-services

然后再查看防火墙状态

service iptables status

我们可以看到防火墙没有打开
在这里插入图片描述
接下来我们就开启防火墙

service iptables start

在这里插入图片描述
再查看防火墙状态

service iptables status

这样防火墙我们就开启了
在这里插入图片描述

2、打开防火墙文件增加3306端口

vim /etc/sysconfig/iptables
#增加如下代码
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

在这里插入图片描述
再次重启防火墙

service iptables restart

在这里插入图片描述

3、开通远程访问权限

登录mysql数据库

bin/mysql -uroot -p

在这里插入图片描述
执行以下SQL语句查看你的user表里有没有root对应的host为%的这条记录,没有的话继续往下看。

use mysql
select host,user from user;

在这里插入图片描述
如果你的root对应的host少一个%,那么执行以下update语句,然后用grant进行密码设置。
注意SQL语句不一定要和我的一样,我的这儿user全是root。

update user
set host = '%'
where user = 'root' and host = '127.0.0.1';
#用下面这个授权语句进行密码设置
grant all privileges on *.* TO root@'%' identified by 'root';

在这里插入图片描述
我们再次查询user表里面的host和user字段,就有了host为%的记录,然后刷新权限。

select host,user from user;
flush privileges;

在这里插入图片描述

至此,SQLyog可以连接CentOS8上面的MySQL数据库了!

### SQLyog 连接数据库配置指南 #### 一、基本概念 SQLyog 是一款功能强大的图形化工具,用于管理和操作 MySQL 和 MariaDB 数据库。它提供了直观的界面来简化复杂的数据库管理任务。 --- #### 二、连接本地 MySQL 数据库的方法 如果遇到错误代码 `2058` 或其他连接问题,可以按照以下方式解决问题并完成配置: 1. **修改认证插件** 如果使用的是较新的 MySQL 版本,默认可能启用了更安全的认证插件(如 `caching_sha2_password`),这可能导致某些客户端无法正常连接。可以通过更改用户的认证插件为 `mysql_native_password` 来解决此问题。 在命令行中登录到 MySQL 并运行以下语句: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 上述语句中的 `'your_password'` 应替换为你实际使用的密码[^1]。 2. **验证连接参数** 确保在 SQLyog 中输入正确的主机名(通常是 `localhost`)、端口号(默认为 `3306`)、用户名和密码。如果仍然失败,请尝试重启 MySQL 服务以应用更改。 --- #### 三、远程 Linux 主机上的 MySQL 配置 当需要通过 SQLyog 访问位于远程 Linux 服务器上的 MySQL 数据库时,可能会遇到诸如 `Error Number: 2003 (Can't connect to MySQL server)` 的错误消息。以下是解决方案: 1. **确认 MySQL 是否允许外部访问** 编辑 MySQL 配置文件 `/etc/mysql/my.cnf` 或 `/etc/my.cnf`,找到 `[mysqld]` 节点下的绑定地址部分,并将其改为如下内容: ```ini bind-address = 0.0.0.0 ``` 2. **授予用户权限** 使用具有管理员权限的账户登录 MySQL 后台,执行授权命令以允许来自特定 IP 地址或任意位置 (`%`) 的请求: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 3. **停用防火墙干扰** 若目标机器开启了防火墙,则需临时停止或者永久禁用该服务以便测试网络连通性: ```bash systemctl stop firewalld # 停止防火墙 systemctl disable firewalld # 设置开机启动 ``` 4. **开放必要的端口** 对于生产环境而言,建议仅打开必需的服务端口而非完全关闭防护措施。例如,在 CentOS/RHEL 发行版下可添加规则放行 TCP/UDP 流量至指定端口范围内的数据包传输过程: ```bash firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` --- #### 四、常见问题排查技巧 - 当收到类似于 “Access denied for user” 错误提示时,请仔细核对所提供的凭证信息是否匹配以及所选身份验证机制是否存在兼容性差异等问题; - 检查操作系统层面是否有额外的安全策略阻止了正常的通信行为发生;比如 SELinux 可能会对进程间交互施加严格限制条件从而影响最终结果表现形式等等情况都需要纳入考虑范畴之内加以分析判断处理才行哦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值