[英]mysql_connect not working for a site
因此,我在本地完成了一个站点,并且一直试图将其转移到在线服务器上。 这可能是一个非常愚蠢的问题,但是我花了最后一个小时试图找到答案,但我没有。 因此,这是一行在服务器上运行的PHP代码(用户名和密码已更改,但主机名相同):
if(!mysql_connect("www.bluestreakaquatic.com","username","password"))
die(mysql_error());
它产生此错误:
Can't connect to MySQL server on 'www.bluestreakaquatic.com' (10061)
谁能给我任何建议?
您的托管服务提供商出于安全原因可能不允许外部mySQL连接。
如果mySQL与您的站点在同一服务器上运行,请尝试将域名替换为localhost
。
如果这样不起作用,则需要向托管服务提供商询问正确的数据库服务器地址。
我最近遇到了同样的问题。
找到以下行: [mysqld]
并确保对skip-networking
进行了注释(或删除了行)并添加了以下行:
bind-address=YOUR-SERVER-IP
例如,如果您的MySQL服务器IP为66.166.170.28,则整个块应如下所示:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 66.166.170.28
# skip-networking
.......
哪里
使用以下命令启动MySQL监视器: mysql
或/usr/local/mysql/bin/mysql
。 您的shell提示符现在应如下所示: mysql>
。 运行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY "PASSWORD";
哪里:
现在,您必须刷新MySQL的特权。 运行以下命令:
FLUSH PRIVILEGES;
运行以下命令退出MySQL:
exit;
/etc/init.d/mysqld restart
要么
/etc/init.d/mysql restart
取决于您的服务器当前正在运行的Linux发行版。
由于安全隐患,任何托管服务提供商都不太可能允许远程连接到mysql服务器。 但是,如果您的托管服务器使用DirectAdmin控制面板或cPanel,您可能会很幸运。 如果是这样,请按照下列步骤操作:
转到MySQL Management
。 选择您的数据库,然后单击它。 您将找到一个名为“ Access Hosts
的部分。 添加新主机:( %
)
转到“ Databases
部分下的“ Remote MySQL
,然后添加%
而不是myhost.com
:
另请参见参考: http : //dev.mysql.com/doc/refman/5.5/en/can-not-connect-to-server.html
如果无法从Web服务器连接到远程mysql服务器,但可以从本地主机连接到远程mysql服务器,则该服务器可能没有授予来自该主机的用户名的权限。
GRANT ALL PRIVILEGES ON database.* TO username@serverhostname IDENTIFIED BY 'password'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.