Ubuntu mysql连接错误10060/10061的方法

 

mysql 10060错误一般因为防火墙

ufw allow 3306;        //允许外部访问3306端口
ufw allow from 192.168.1.115;  //允许此IP访问所有的本机端口
ufw status;            //查看防火墙状态
ufw disable/enable;      //关闭或打开防火墙

没装ufw就执行安装既可:apt-get install ufw;


mysql 10061错误为配置原因

第一步:

先查看mysql运行状态
netstat -ntlp | grep -v tcp6;  //查看端口状态
mysql -V;           //查看mysql版本号
find / -name mysqld.cnf;     // 查找mysqld.cnf 的位置

如果端口为127.0.0.1:3306,解决办法
mysql5.7 版本:
vi /etc/mysql/mysql.conf.d/mysqld.cnf;  //将bind-address = 127.0.0.1 修改成 bind-address = 0.0.0.0

mysql5.7以前的版本:
vi /etc/mysql/my.cnf;  //将bind-address = 127.0.0.1 修改成 bind-address = 0.0.0.0 ,或注释掉即可

service mysql restart;    //重启mysql
netstat -ntlp | grep -v tcp6;   //查看端口状态为0.0.0.0:3306即可

第二步:

mysql -uroot -p123567;//登录mysql
use mysql;//进入mysql数据库
select Host,User from user;//查看user表中root是否支持外部访问,localhost 只支持本地; IP地址只支持
Host      User
localhost    root  //只支持本地
%       root  //全部IP都允许
192.168.1.115  root  //只支持此IP

GRANT ALL PRIVILEGES ON *.* TO 'root'@'*' IDENTIFIED BY 'xsxas' WITH GRANT OPTION; //给此IP地址授权
FLUSH PRIVILEGES;//刷新该表即可

<think>好的,我现在需要帮助用户在Ubuntu上配置MySQL Connector/C++与CMake的集成。首先,我需要回忆一下相关的步骤,确保自己了解整个过程。 首先,用户可能需要安装MySQL Connector/C++。在Ubuntu上,通常可以通过apt包管理器来安装。我记得包名可能是libmysqlcppconn-dev,这样安装的话,文件和库文件会被放在系统的默认路径,比如/usr/include/mysql和/usr/lib/x86_64-linux-gnu。不过有时候用户可能需要手动下载源码编译安装,特别是如果需要特定版本的话。这时候可能需要使用cmake和make来构建。这时候要注意依赖项,比如需要安装libmysqlclient-dev,否则编译时可能会出错。 接下来,用户需要用CMake来配置项目。这时候需要确保CMake能找到MySQL Connector/C++的文件和库文件。用户可能需要使用find_package命令,或者手动设置包含路径和链接库。如果通过apt安装的话,可能find_package能够自动找到,但如果是手动安装到非标准路径,就需要在CMakeLists.txt中指定INCLUDE_DIRECTORIES和LINK_DIRECTORIES,或者在调用cmake时添加参数,比如-DCMAKE_PREFIX_PATH=/path/to/mysql-connector。 然后,用户的代码中需要包含正确的文件,比如#include <mysql_driver.h>,并且在链接阶段链接mysqlcppconn库。在CMake中,使用target_link_libraries(target_name mysqlcppconn)应该就可以。但需要注意库的名称是否正确,有时候可能会有版本号或者其他后缀,可能需要用find_library来定位。 另外,用户可能会遇到运行时找不到库的问题。这时候需要确保动态库路径正确,可以通过设置LD_LIBRARY_PATH环境变量,或者将库路径添加到/etc/ld.so.conf中,并运行ldconfig更新缓存。比如,如果手动安装到了/usr/local/lib,可能需要执行sudo ldconfig。 还有,用户可能需要处理MySQL服务器的连接参数,比如主机地址、端口、用户名、密码等。在代码中使用正确的连接字符串,比如jdbc:mysql://localhost:3306/db_name,并且确保MySQL服务正在运行,用户有访问权限。 在参考用户提供的引用内容时,注意到引用[2]提到将/local/bin加入PATH,以及将/local/include和/local/lib加入编译器的搜索路径。这可能适用于用户手动安装MySQL Connector/C++到自定义目录的情况,比如/usr/local。这时候用户需要在CMake中设置include_directories和link_directories指向这些路径,或者在CMake命令中传递相关参数。 此外,引用[1]中的配置命令可能涉及生成动态库,但用户的问题是关于C++连接器的,可能不需要自己编译Python库。不过,这里可能需要确保MySQL Connector/C++的动态库被正确生成和安装,比如libmysqlcppconn.so是否存在。 最后,测试示例代码是否能正确编译和运行是关键。用户可能会忽略某些步骤,比如忘记安装依赖库,或者路径设置不正确,导致编译失败或运行时错误。需要提醒用户按照步骤逐一检查,确保每个环节都正确配置。</think>在Ubuntu系统中配置MySQL Connector/C++与CMake的集成,需遵循以下步骤: --- ### 1. 安装依赖库 首先安装MySQL客户端库和开发工具: ```bash sudo apt update sudo apt install libmysqlclient-dev cmake g++ ``` --- ### 2. 安装MySQL Connector/C++ **方法一:APT安装(推荐)** ```bash sudo apt install libmysqlcppconn-dev ``` 安装后文件路径为`/usr/include/mysql-cppconn-8`,库文件路径为`/usr/lib/x86_64-linux-gnu`[^2]。 **方法二:源码编译安装** ```bash wget https://dev.mysql.com/get/Downloads/Connector-C++/mysql-connector-c++-8.0.30-linux-glibc2.12-x86-64bit.tar.gz tar -xzvf mysql-connector-c++-8.0.30-linux-glibc2.12-x86-64bit.tar.gz sudo cp -r mysql-connector-c++-8.0.30-linux-glibc2.12-x86-64bit/include/* /usr/local/include/ sudo cp -r mysql-connector-c++-8.0.30-linux-glibc2.12-x86-64bit/lib64/* /usr/local/lib/ sudo ldconfig # 更新动态库缓存 ``` --- ### 3. 配置CMake项目 创建`CMakeLists.txt`文件,添加以下内容: ```cmake cmake_minimum_required(VERSION 3.10) project(MySQLDemo) # 设置C++标准 set(CMAKE_CXX_STANDARD 17) # 查找MySQL Connector/C++ find_package(MySQL REQUIRED COMPONENTS CONNECTOR_CPP) # 添加可执行文件 add_executable(demo main.cpp) # 包含文件路径 target_include_directories(demo PRIVATE ${MYSQL_INCLUDE_DIRS}) # 链接库文件 target_link_libraries(demo PRIVATE ${MYSQL_LIBRARIES}) ``` --- ### 4. 编写示例代码(main.cpp) ```cpp #include <mysqlx/xdevapi.h> #include <iostream> int main() { try { mysqlx::Session sess("localhost", 3306, "user", "password"); mysqlx::Schema db = sess.getSchema("test_db"); std::cout << "成功连接MySQL服务器!" << std::endl; } catch (const mysqlx::Error &e) { std::cerr << "错误: " << e.what() << std::endl; } return 0; } ``` --- ### 5. 编译与运行 ```bash mkdir build && cd build cmake .. make ./demo ``` --- ### 常见问题解决 1. **文件找不到** 确保`find_package`正确找到路径,或手动指定: ```cmake include_directories(/usr/local/include/mysql-connector-c++-8.0.30) link_directories(/usr/local/lib) ``` 2. **运行时库缺失** 设置动态库路径: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` 3. **连接失败** 检查MySQL服务状态和用户权限: ```bash sudo systemctl status mysql mysql -u user -p # 验证账号能否登录 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值