无法连接本地MySQL

在Linux系统下,MySQL客户端有两种不同的方法连接本地mysqld服务:

  • 通过Unix socket文件。这是一个在文件系统中的文件,默认/tmp/mysql.sock

  • 使用TCP/IP连接。TCP/IP需要个网络端口,默认3306。

Unix socket文件比TCP/IP连接速度快,但只能连接客户端所在的同一台服务器上的MySQL。连接MySQL时不指定主机名,或者指定特定的主机名localhost,则使用Unix socket文件连接。

error (2002) Can't connect to ...错误一般可能是以下原因导致的:

  • MySQL服务未启动。

  • 连接使用了错误的Unix socket文件。

  • 连接使用了错误的TCP/IP端口号。

原因知道了,排查起来也就简单了。

首先检查服务器上是否有mysqld进程,确定MySQL服务已启动。如果没有这个进程,则说明MySQL服务未启动。Linux系统查看方式如下:

首先检查服务器上是否有mysqld进程,确定MySQL服务已启动。如果没有这个进程,则说明MySQL服务未启动。Linux系统查看方式如下:

$ ps xa | grep mysqld
  13974 ?        S      0:01 /bin/sh /usr/bin/mysqld_safe
  14051 ?        Sl   112:17 /opt/mysql/bin/mysqld --base
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C 语言中,可以使用 MySQL 提供的 C API 来连接本地 MySQL 数据库。以下是连接本地 MySQL 数据库的基本步骤: 1. 下载 MySQL Connector/C API 库,并将其添加到项目中。 2. 在代码中包含 MySQL 头文件。 ```c #include <mysql.h> ``` 3. 初始化 MySQL。 ```c mysql_init(NULL); ``` 4. 连接 MySQL 数据库。 ```c MYSQL *conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0); ``` 其中,"localhost" 是指本地 MySQL 数据库所在的主机名,"username" 和 "password" 分别是 MySQL 数据库的用户名和密码,"database_name" 是要连接数据库名称。 5. 执行 SQL 查询语句。 ```c mysql_query(conn, "SELECT * FROM table_name"); ``` 6. 关闭 MySQL 连接。 ```c mysql_close(conn); ``` 完整的示例代码如下: ```c #include <stdio.h> #include <mysql.h> int main() { MYSQL *conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0); mysql_query(conn, "SELECT * FROM table_name"); MYSQL_RES *res = mysql_store_result(conn); int num_fields = mysql_num_fields(res); MYSQL_ROW row; while ((row = mysql_fetch_row(res))) { for (int i = 0; i < num_fields; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf("\n"); } mysql_free_result(res); mysql_close(conn); return 0; } ``` 注意,上面的示例代码仅用于演示连接本地 MySQL 数据库的基本步骤,实际应用中需要根据具体情况进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值