- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在本地计算机上管理 MySQL 数据库,并通过运行以下程序通过 C 连接到它:
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
int main(int argc, char** argv ) {
my_init();
printf("MySQL client version: %s\n", mysql_get_client_info());
MYSQL mysql;
printf( "%p\n", &mysql );
MYSQL* mysql_initiate = mysql_init(&mysql);
printf( "%p\n", mysql_initiate );
MYSQL* attempt = mysql_real_connect(&mysql, "localhost","User","********","DB",0,NULL,0);
printf( "%p\n", attempt );
if(attempt != NULL) {
printf("OK\n");
}
else {
printf("Error: %s\n", mysql_error(&mysql));
}
mysql_close(&mysql);
return 0;
}
它是由以下命令编译的:
gcc -c `mysql_config --cflags` main.c
gcc -o a.run main.o `mysql_config --libs`
哪里mysql_config --cflags
输出
-I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -DNDEBUG
和mysql_config --libs
输出
-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl
程序编译正常,但执行时输出:
MySQL client version: 5.5.50
0x7fffcb8403e0
0x7fffcb8403e0
(nil)
Error: Access denied for user 'User'@'localhost' (using password: YES)
当前线程的用户名、密码和数据库名称已更改。
PHP 使用实际的名称和密码三元组成功连接,因此用户的凭据不是问题的原因。我从 PHP 代码到 C 代码进行了简单的复制粘贴,字符串中没有不准确的地方。
同样的问题发生在以下情况:
mysql
和mysql_initiate
进入blip
和blop
(如果发生了一些奇迹般的未被发现的碰撞)。当我运行可执行文件时,Apache 服务器启动,以证明我可以连接到 phpmyadmin。我从 phpmyadmin 注销后尝试过,同样的问题。当我输入 NULL
时,会出现同样的问题而不是"localhost"
,当我输入端口 3306
时(这是 MySQL 端口,由 netstat -natp
告知)而不是 0
.
为什么User可以通过PHP连接数据库而不能通过C连接数据库?
我已经用谷歌搜索了这个问题,但没有任何关于该主题的内容。
gcc的版本是
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
我在 Linux Mint 17 Qiana 下运行。MySQL 通过 XAMPP 7.0.6-0 进行管理,数据库通过 phpmyadmin 进行管理,具有以下版本和配置(数据从 phpmyadmin 欢迎页面检索):
数据库服务器:
服务器:通过 UNIX 套接字的本地主机
服务器类型:MariaDB
服务器版本:10.1.13-MariaDB - 源代码分发
协议(protocol)版本:10
用户:root@localhost
服务器字符集:UTF-8 Unicode (utf8)
网络服务器:
Apache/2.4.18 (Unix) OpenSSL/1.0.2h PHP/7.0.6 mod_perl/2.0.8-dev Perl/v5.16.3
数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407
PHP 扩展:mysqli
PHP版本:7.0.6
我被困在墙上,感谢任何帮助。
如果您需要一些额外信息,请随时询问。
提前致谢。
最佳答案
之前我浏览过类似的问题,并了解到其他一些用户已经通过删除 XAMPP 解决了他们的问题。我不知道这也是我的情况。在诉诸这样的结局之前,我想尝试其他事情。
我了解到一些有关设置/更改 root 密码的 XAMPP 脚本已被弃用。
我已经摆脱了 XAMPP。当涉及到 MySQL 用户及其权限时,XAMPP 会以某种方式破坏 MySQL 数据库。
此外,我还卸载了mysql、apache等,然后“手动”重新安装了它们。它有效。
我现在才看到该页面:
https://community.apachefriends.org/f/viewtopic.php?f=16&t=72519
也许它可以解决我的问题,也许不能。不管怎样,我不建议再使用XAMPP。
关于mysql - 用户可以通过 PDO 连接,但不能通过 C mysql_real_connect 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663574/
PHP查询: prepare('SELECT * FROM Locations WHERE user_id = :id LIMIT 0, 5'); $query->bindParam(":id
到目前为止我一直在使用 PDO->bindParam 但是在阅读手册时我发现 PDO->bindValue 我可以告诉 PDO->bindValue 按值传递,而 PDO->bindParam 按引用
我使用PDO进行MySQL数据库连接、选择、更新和删除。 但是我在选择带有特殊字符的行时遇到问题,例如,我想选择带有“Judge-Fürstová Mila”的页面标题, 表页, id titl
我使用的是 PHP 5.2.9 和 Apache 2.2.11 以及 mysql 5.1.32 为什么我不能禁用 PDO::ATTR_EMULATE_PREPARES ? 下面是代码: false)
当 PDO::ATTR_PERSISTENT = true 时,PDO::exec 和 PDO::query 之间似乎存在差异。当使用PDO::exec时,连接将不会被重用,并最终导致MySQL出现“
我正在尝试调整 Zend Skeleton App 以使用 ODBC 连接。我能够在 Zend 之外设置 PDO 连接(同一个表、服务器、所有内容),如下所示: new PDO('odbc:DRIVE
我正在使用 XAMPP 3.2.1 在 Windows 7 上使用 PDO,但在使其正常工作时遇到问题,即使它可以在我的共享托管服务器。 settings.php db.php setAttribu
我正在尝试使用以下代码从 get 变量中获取结果,我使用了另一个代码(在下面列出)并且它有效但是在使用它时无法逃脱,我不知道我有什么做错了,但我需要帮助,我刚刚开始 PDO,所以是的,我是个白痴 :D
我有这个代码 try { $dbh = new PDO('mysql:host=localhost;dbname=db_informations', 'root', ''); $dbh
在我的本地开发机器 (MAMP) 上,我的 MySQL 查询返回正确的大小写。但是,在我的共享托管服务器上,使用 fetch(PDO::FETCH_ASSOC); 时,我的结果是小写的 我试过以下方法
我正在使用这个 PDO 连接: try{ $db=new PDO(" mysql:host=localhost; dbname=...", "dbu...", "pass", array(PDO::M
我需要将 PDO 连接从 controller 传递到 cart 类, function __construct($connection) { $this->cart = new cart($
位于 PHP.net 的 PDO 交易示例表明 PDO::exec() 是事务处理的,但是没有这样的例子使用 PDO::query()。 事务是否涵盖 PDO::query()? 此外,据我所知,PD
几天来我一直在使用来自 http://www.mamp.info 的 MAMP Pro 3.07 . 很棒的工具,一切正常。 但是现在我遇到了问题,对于一个新项目,我需要连接到 MSSQL。 我在 w
我正在尝试在我的 PHP 代码中使用 PDO 模块来连接到数据库。我已经阅读并搜索了类似的主题,但我无法弄清楚我做错了什么。请帮我解决问题。 Apache版本:Apache/2.2.21 (Win32
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我使用 PDO 连接到我的数据库,我不知道哪种方法比更新、删除和插入、PDO::exec 或 PDO::excute 的另一种方法更好。我应该使用哪个? 最佳答案 虽然这两种方法具有相似的命名(exe
如何在 Codeigniter 中设置 PDO 数据库句柄的属性(PDO::ATTR_ERRMODE)? 最佳答案 我认为更好的选择是使用 MY_Model(然后您对其进行扩展,然后它在整个应用程序中
从 mysql 切换到 PDO 我注意到 fetch 方法改变了 PDO 对象本身!例如: $res=$ps->fetchAll(); echo($res[0]['Mail']); //it'ok /
嗨,我正在使用 PDO 为 mysql 开发一个基本的数据库连接类,但是当我 var dump 返回结果时,它告诉我我有 2 个对象:object(PDO)[2]。不应该只有一个吗? 这是迄今为止我的
我是一名优秀的程序员,十分优秀!