我想在本地系统(localhost)中运行PHP脚本,并将数据存储在服务器数据库中。我通过PHP脚本从localhost连接到远程mysql数据库时收到错误。
Warning: mysql_connect(): Access denied for user 'XXXX'@'ip address' (using password: YES) in E:\xampp\htdocs\New\example\include\config.php on line 13
我尝试使用
$con= mysql_connect("example.com:3306","db username","password");
mysql_select_db('db', $con);
我也尝试使用mysqli_connect(...)
,但我无法联系。
有人请指导我如何解决这个问题?
答案 0 :(得分:2)
如果您在Localhost上运行它,那么就这样做
$connection = mysqli_connect('localhost','username', 'password', 'database');
当您使用mysqli时,您不需要使用mysql_select_db
,因为在您创建连接时会传递此信息。
我将强调的主要修复方法是将您传递到connect变量的第一个凭据用作'Localhost'
,如果它在您的计算机上是本地的,并且您正在使用xampp或mamp等,那么请使用localhost。
使用mysql时你所做的mysql_select_db('db', '$con')
语法是错误的你不需要将$connection
变量传递给mysql,因为这只适用于新的mysqli
。
一旦您的舒适(最好尽快)离开mysql函数并使用mysqli,最后的建议,移动并没有太大的不同,您只需要知道传递$conn
变量的位置。
答案 1 :(得分:0)
像你这样的接缝没有授予用户权限。
在远程数据库上试试这个。
~$ mysql -u root -p
Enter Password:
mysql> grant all privileges on *.* to user identified by 'pass' with grant option;
答案 2 :(得分:0)
哦,先看看Kenziiee Flavius的回答 - 这可能已经解决了你在本地主机上的问题。
通过命令行登录您的服务器:
mysql -u username -p
为远程主机创建新用户:
CREATE USER 'username'@'192.168.0.1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.0.1';
将192.168.0.1替换为远程主机的ip或主机名。