首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产环境中未连接数据库

问生产环境中未连接数据库
EN

Stack Overflow用户
提问于 2019-10-26 15:50:52
回答 1查看 83关注 0票数 0

在生产服务器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文件中,我像这样提到了我的数据库连接

代码语言:javascript
复制
<?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下检查我的数据库连接时,我可以看到这个错误

代码语言:javascript
复制
Failed to connect to database: Access denied for user 'root'@'localhost'

但是当我在我的Ubuntu服务器上尝试时

ssh root@localhost,密码-123

这可以登录到localhost

我的网站有什么问题,有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-10-26 15:54:50

您必须在数据库中为root@localhost创建用户,并为其添加读/写访问权限。

在您的服务器上使用mysql shell。应该使用sudo。登录:

代码语言:javascript
复制
mysql -u root -p

如果会询问密码。

命令:如果用户不存在,您可以创建或替换。如果你不知道它的密码,你也可以修改它。我猜它是存在的,所以你可以跳过这一步。

代码语言:javascript
复制
CREATE OR REPLACE USER 'root'@'localhost'
  IDENTIFIED BY 'password';

向所有数据库添加权限。您也可以添加一个特定的。

代码语言:javascript
复制
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

我有Mariadb,可以有所不同。如果上面的方法不起作用,你可以在mysql中使用它。

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON database_name.* TO 'root'@'localhost';

我不记得mysql守护进程应该还是不应该重启。

我希望它能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58569008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档