mysql无法连接3306

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql无法连接3306相关的知识,希望对你有一定的参考价值。

最近考试要用一个考试软件,需要mysql.软件安装完了之后进入界面显示无法连接数据库。自己卸载这软件,重启后自己安装5.0的版本,用navicat显示可以连接3306,可是用那个考试软件就是无法连接,显示2003错误,无论安装在C,D,E盘都不行。另外也关闭了防火墙,在例外端口也开启了3306.甚至专门卸载了360,优化大师都无法解决。请问怎么办?先给10分,回答解决了问题追加50以上。

参考技术A 一般是你的mysql 3306端口被别的程序占用了 ,有没有用加速器类的软件,将其卸载后试试。追问

我通过用录像来观察,发现,在这个软件安装的时候,在MYSQL服务启动之前,CMD跳出了一句“发生系统错误1060”。想问下是和这个有关么,有关的话怎么解决。?

追答

建议的解决方式:
1.打开已经安装的mysql目录,eg:E:\Program Files\MySQL\MySQL Server 5.5\bin,查找MySQLInstanceConfig.exe 双击运行,选择修复按钮,修复后重试!
2.从官网下载新版本的mysql.

参考技术B 对了 你的mysql服务是否启动了啊? 或许是有后遗症!

Openshift.com - 无法连接 mysql

【中文标题】Openshift.com - 无法连接 mysql【英文标题】:Openshift.com - unable to connect with mysql 【发布时间】:2014-05-25 19:52:03 【问题描述】:

我正在尝试与 mysql-5.1 建立连接,但它显示诸如“无法连接”之类的错误,或者当我更改主机名“无法连接:没有这样的文件或目录”时。

我的文件是这样的

<?php
$link = mysql_connect('localhost', 'username', 'password');
if (!$link) 
    die('Could not connect: ' . mysql_error());

printf("MySQL server version: %s\n", mysql_get_server_info());
?>

尝试将 mysql_connect 更改为 mysqli_connect。没有区别。

1) Mysql 正在运行(根据界面)。

2) 尝试了各种 rhc 命令来重新启动应用程序、重新启动|重新加载墨盒等 - 这样做时没有错误。“eg.Mysql-5.1 restart...done”。

3) 尝试 ping $OPENSHIFT_MYSQL_DB_HOST 并且成功了。

4) 尝试远程登录 $OPENSHIFT_MYSQL_DB_HOST 并且它说连接已建立并且一些乱码文本。

5) ps 辅助 | grep "mysql" 4213 21721 0.0 0.0 103252 828 pts/0 S+ 10:56 0:00 grep mysql

6)mysql> 状态

/usr/bin/mysql Ver 14.14 Distrib 5.1.73,用于使用 readline 5.1 的 redhat-linux-gnu (x86_64)

连接 ID:4 当前数据库: 当前用户:xxxxxxxxxxxx@xx.xx.xx.xx SSL:未使用 当前寻呼机:标准输出 使用输出文件:'' 使用分隔符:; 服务器版本:5.1.73 源码分发 协议版本:10 连接:xxxxxxxx-xxxxxxxxxxxxxxx.rhcloud.com 通过 TCP/IP 服务器字符集:latin1 Db 字符集:latin1 客户端字符集:latin1 康涅狄格字符集:latin1 TCP端口:50986 正常运行时间:18 分 40 秒

线程:1 问题:4 慢查询:0 打开:17 刷新表:1 打开表:4 每秒查询平均:0.3

我把代码改成

<?php
$mysqli = new mysqli('localhost', 'username', 'password', 'dbname');

/*
 * This is the "official" OO way to do it,
 * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
 */
if ($mysqli->connect_error) 
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);


/*
 * Use this instead of $connect_error if you need to ensure
 * compatibility with PHP versions prior to 5.2.9 and 5.3.0.
 */
if (mysqli_connect_error()) 
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());


echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

又是同样的错误。

有人可以帮帮我吗?甚至 phpmyadmin 代码都说“无法连接到 mysql”。

谢谢 加内什库马尔

【问题讨论】:

请不要使用 mysql_ 扩展名..改用 mysqli 或 PDO...也许您在 php 脚本上的用户名和密码错误...您使用哪个用户和密码连接到 mysql控制台...在您的 php 脚本中使用相同的内容 用户名和密码与创建磁带时给定的相同。让我看看mysqli_ 我应该使用 $OPENSHIFT_MYSQL_DB_HOST 中指定的 localhost 还是“534xxxxxxxxxx-xxxxxxxx.rhcloud.com”? 都试过了。在这里,用 534xxxxxxxxx-xxxxx.rhcloud.com 测试得到这个错误“连接错误(2002)php_network_getaddresses:getaddrinfo失败:名称或服务未知”。并尝试使用localhost得到“连接错误(2002)没有这样的文件或目录”。有什么想法吗? 您应该在您的 openshift 机器上使用可用作环境变量的连接参数。 OPENSHIFT_MYSQL_DB_HOST、OPENSHIFT_MYSQL_DB_USERNAME、OPENSHIFT_MYSQL_DB_PASSWORD、OPENSHIFT_APP_NAME(作为数据库名称)。 【参考方案1】:

您是否尝试过以下方法:

<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database */
define('DB_NAME', $_ENV['OPENSHIFT_APP_NAME']);

/** MySQL database username */
define('DB_USER', $_ENV['OPENSHIFT_MYSQL_DB_USERNAME']);

/** MySQL database password */
define('DB_PASSWORD', $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD']);

/** MySQL hostname */
define('DB_HOST', $_ENV['OPENSHIFT_MYSQL_DB_HOST'] . ':' . $_ENV['OPENSHIFT_MYSQL_DB_PORT']);

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) 
    die('Could not connect: ' . mysql_error());

printf("MySQL server version: %s\n", mysql_get_server_info());
?>

【讨论】:

【参考方案2】:

我遇到了同样的问题,通过以下代码能够解决。

define('DB_HOST', getenv('OPENSHIFT_MYSQL_DB_HOST'));
define('DB_PORT', getenv('OPENSHIFT_MYSQL_DB_PORT'));
define('DB_USER', getenv('OPENSHIFT_MYSQL_DB_USERNAME'));
define('DB_PASS', getenv('OPENSHIFT_MYSQL_DB_PASSWORD'));
define('DB_NAME', getenv('OPENSHIFT_GEAR_NAME'));

$dbhost = constant("DB_HOST"); // Host name 
$dbport = constant("DB_PORT"); // Host port
$dbusername = constant("DB_USER"); // Mysql username 
$dbpassword = constant("DB_PASS"); // Mysql password 
$db_name = constant("DB_NAME"); // Database name 

【讨论】:

以上是关于mysql无法连接3306的主要内容,如果未能解决你的问题,请参考以下文章

mysql连接不上怎么办

SQLyog客户端无法连接MySQL服务器

Docker:无法连接 Spring Boot 和 MYSQL

无法连接在 docker 容器上运行的 mysql 服务器

mysql docker容器 - 无法与Windows连接

linux mysql 远程无法访问连接 13