【问题记录】-mysql无法远程连接问题

一、进入数据库

mysql -u root -p


use mysql;

 

二、 将用户的主机(host)字段更新为 ‘%’

update user set host = '%' where user = 'root';

三、刷新 MySQL 的权限表的命令

flush privileges;

 四、quit;退出MySQL

 五、修改

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改bind-address = 0.0.0.0

六、重启

service mysql restart

测试程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>

int main(int argc, char const *argv[]) 
{
    MYSQL mysql, *sock; // 定义mysql实例和指针

    //初始化数据库环境
    mysql_init(&mysql); // 用于初始化MYSQL对象,为后续的连接做准备。参数是要初始化的MYSQL对象的地址。

    //连接数据库
    sock = mysql_real_connect(&mysql, "xx.xx.xx.xx", "root", "xxxx", "xxxx", 3306, NULL, 0);
    // 这个函数用于创建与MySQL服务器的连接。参数依次为:MYSQL对象的地址、服务器的IP地址、用户名、密码、数据库名、服务器的端口号、unix套接字(在这里没有使用,所以为NULL)、客户端标志(在这里没有使用,所以为0)
    
if (sock == NULL) 
{
    fprintf(stderr, "连接失败: %s\n", mysql_error(&mysql));
    return 0;
}

    printf("连接成功\n"); // 如果连接成功,输出连接成功的提示



    //关闭连接
    mysql_close(sock); // 使用mysql_close函数关闭与MySQL服务器的连接,参数为MYSQL对象的地址

    return 0; // 程序结束,返回0
}

注意:修改自己的IP地址,登录密码,以及数据库名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值