解决Ubuntu远程连接MySQL被拒绝的问题2003

问题

1. 用户权限分配不当

localhost只能本地访问,其他地址访问不了,% 是所有IP都能访问

查看权限

  • mysql -u root(root用户无密码)或者mysql -u root -p(root用户有密码)进入mysql
  • use mysql;:选择数据库
  • select host,user from user;:查看用户权限。
    在这里插入图片描述

分配权限

  • grant all privileges on *.* to '用户名'@'%' identified by '用户密码';

2. IP地址传错(IP地址确认无误,转下一条)

  • 使用ifconfig查看IP地址。一定一定在Ubuntu终端中使用ifconfig查看IP地址,不要理所当然把服务器上的某串数字作为IP。一切以终端显示的数字为准,即红心被遮挡住的位置。
    查看IP

3. 配置允许所有ip访问。注释掉bind-address配置项(两种情况)

3.1 /etc/mysql/my.cnf文件中有bind-address这一行,直接 # 注释掉即可

/etc/mysql/my.cnf

3.2 /etc/mysql/my.cnf文件中没有bind-address这一行

使用sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf打开/etc/msql/mysqld.conf.d/mysqld.cnf文件,注释bind-address一行。
/etc/mysql/mysql.conf.d/mysqld.cnf

3.3 原因

bind-address = 127.0.0.1:只监听本地连接,只允许本机访问。
bind-address = 0.0.0.0:系统默认配置,监听所有网卡,即允许所有ip访问。

4. 通过firewalld和iptables打开端口3306,8080,22,443(能打开的都打开了)。

firewalld打开终端

注意:如果第一次使用firewalld和iptables的相关指令报错,多半是因为没有安装firewalld和iptables,详情请上网自行查找有关防火墙内容。

无论远程连接什么服务器,本质上还是Ubuntu系统,很多指令和处理方式都是和在Ubuntu一样的。

参考文章:MySQL连接错误2003:解决远程访问数据库失败的问题

<think>嗯,用户想在Ubuntu 24.04的百度云服务器上配置MySQL允许远程访问。首先,我需要回忆一下安装MySQL的步骤。根据引用[2]和[3],安装MySQL服务器可以使用sudo apt install mysql-server命令。不过用户可能已经安装好了,所以重点在远程访问的设置。 接下来,MySQL默认只监听本地连接,所以需要修改配置文件,把bind-address从127.0.0.1改成0.0.0.0。这个步骤我记得没错,但有时候配置文件的位置可能不同,比如可能在/etc/mysql/mysql.conf.d/mysqld.cnf或者别的路径,得确认一下。 然后,用户需要创建允许远程登录的用户。MySQL 8.0之后创建用户和授权可能需要分开操作,比如先用CREATE USER,再用GRANT授权。这里要注意host部分设为%,表示允许任何主机连接。同时,可能需要使用ALTER USER设置密码时指定使用mysql_native_password插件,因为某些客户端可能不支持默认的caching_sha2_password,不过这个步骤可能不是必须的,但为了兼容性考虑,最好加上。 之后,重启MySQL服务使配置生效,用sudo systemctl restart mysql。然后需要处理防火墙的问题,百度云服务器可能有安全组设置,需要放行3306端口。同时,Ubuntu本身的ufw防火墙如果启用的话,也要允许该端口,可以用ufw allow 3306/tcp。 测试连接的时候,用户可能需要在本机使用mysql -h 服务器IP -u 用户名 -p来尝试连接,如果失败的话,可能需要检查步骤是否正确,或者是否有其他网络问题。比如,安全组有没有正确配置,MySQL用户权限是否正确,bind-address是否修改了,还有防火墙设置。 另外,用户提到的引用[1]是关于Ubuntu 22.04安装MySQL远程登录的,虽然版本不同,但步骤应该类似,特别是配置文件和用户权限部分。需要注意不同Ubuntu版本中MySQL配置文件的路径是否有变化,可能需要用户自行确认。 最后,用户可能遇到的问题包括忘记开放安全组、配置文件修改后未重启服务、用户权限没有正确授予,或者密码认证插件的问题。这些都是需要提醒用户的常见错误点。</think>### 在Ubuntu 24.04服务器上配置MySQL远程连接的步骤 #### 1. 安装MySQL服务器 如果尚未安装MySQL,使用以下命令安装: ```bash sudo apt update sudo apt install mysql-server ``` 安装完成后验证状态: ```bash sudo systemctl status mysql ``` #### 2. 修改MySQL绑定地址 修改配置文件允许远程连接: ```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 找到`bind-address`行并修改为: ```conf bind-address = 0.0.0.0 ``` #### 3. 创建远程访问用户 登录MySQL并执行: ```sql CREATE USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` #### 4. 重启MySQL服务 ```bash sudo systemctl restart mysql ``` #### 5. 配置服务器防火墙 开放3306端口: ```bash sudo ufw allow 3306/tcp sudo ufw reload ``` #### 6. 配置百度云安全组 在百度云控制台中: 1. 进入**安全组**配置 2. 添加入站规则:TCP协议,端口3306,来源0.0.0.0/0(或指定IP) #### 7. 测试远程连接 从本地机器执行: ```bash mysql -h <服务器公网IP> -u remote_user -p ``` ### 常见问题排查 - **连接超时**:检查安全组规则是否生效 - **拒绝访问**:验证用户权限`SHOW GRANTS FOR 'remote_user'@'%';` - **绑定地址未生效**:确认修改的是`mysqld.cnf`而非其他配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值