在生产服务器digitalocean的Ubuntu 18.04上安装
生产构建- dist
php fpm php7.2,mysql-server 5.7,nginx,root@prod
根据这个网站,我首先在Ubuntu droplet上安装了mysql-server。https://support.rackspace.com/how-to/installing-mysql-server-on-ubuntu/
root是我的droplet的用户名,每当我在终端上输入mysql时,它都会提示我,而不询问mysql shell的任何密码
在我的env.php文件中,我像这样提到了我的数据库连接
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "123qwer";
$mysql_database = "xp";
$mysql_port="3306";
$conn = mysqli_connect($mysql_hostname, $mysql_user,
$mysql_password, $mysql_database,$mysql_port);
if (mysqli_connect_errno()) {
echo "Failed to connect to database: " . mysqli_connect_error();
}之后,我将我的产品构建部署到适当的nginx服务根目录,它正在为我的网站提供服务,但是当我在inspect browser下检查我的数据库连接时,我可以看到这个错误
Failed to connect to database: Access denied for user 'root'@'localhost'但是当我在我的Ubuntu服务器上尝试时
ssh root@localhost,密码-123
这可以登录到localhost
我的网站有什么问题,有人能帮我吗?
发布于 2019-10-26 15:54:50
您必须在数据库中为root@localhost创建用户,并为其添加读/写访问权限。
在您的服务器上使用mysql shell。应该使用sudo。登录:
mysql -u root -p如果会询问密码。
命令:如果用户不存在,您可以创建或替换。如果你不知道它的密码,你也可以修改它。我猜它是存在的,所以你可以跳过这一步。
CREATE OR REPLACE USER 'root'@'localhost'
IDENTIFIED BY 'password';向所有数据库添加权限。您也可以添加一个特定的。
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;我有Mariadb,可以有所不同。如果上面的方法不起作用,你可以在mysql中使用它。
GRANT ALL PRIVILEGES ON database_name.* TO 'root'@'localhost';我不记得mysql守护进程应该还是不应该重启。
我希望它能有所帮助!
https://stackoverflow.com/questions/58569008
复制相似问题