当前位置: 首页 > 知识库问答 >
问题:

如何修复mysql访问被拒绝?在主服务器上工作,但在生产服务器上不工作

岳鸿畴
2023-03-14

在运行rails 5.2.2和ruby 2.6.1的家用服务器上,一切正常;但是在我的linode上,我拒绝了用户“部署”@“localhost”的访问(使用密码:是)在家用服务器的database.yml中,我使用大卫作为用户,即unix帐户。在linode上使用相同的database.yml,我已经部署为database.yml文件中的用户。部署是linode服务器的unix帐户。

我已经尝试了根帐户,并将所有权限授予根和部署,但都不起作用

... mysql

数据库家庭服务器上的yml

  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mysql_development
  pool: 5
  username: david
  password: "password"
  host: localhost
  port: 3306


test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mysql_test
  pool: 5
  username: david
  password: "password"
  host: localhost
  port: 3306

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mysql_production
  pool: 5
  host: localhost
  port: 3306

linode服务器上的database.yml

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mysql_development
  pool: 5
  username: deploy
  password: "password"
  host: localhost
  port: 3306


test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mysql_test
  pool: 5
  username: deploy
  password: "password"
  host: localhost
  port: 3306

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mysql_production
  pool: 5
  host: localhost
  port: 3306

...

共有1个答案

颛孙镜
2023-03-14

等等,您有两个不同的数据库。yml文件?

据我所知,你有david@localhost合一,和deploy@localhost在另一个中。

我看不出有什么理由这么做。

数据库的全部用途。yml文件用于定义本地主机、登台、测试等和生产的登录。在生产中,您通常会使用。env文件,或使用Rails 5.2中的加密凭据。

这样,您就可以在不牺牲功能的情况下将Linode服务器凭据存储在安全的地方。

下面是我们自己的数据库的一个示例。yml文件:

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  reconnect: true
  host: <%= ENV.fetch('DB_HOST') {'127.0.0.1'} %>
  port: <%= ENV.fetch('DB_PORT') {'3306'} %>
  database: <%= ENV.fetch('DB_NAME') {'our_dev_server'} %>
  username: <%= ENV.fetch('DB_USER') {'root'} %>
  password: <%= ENV.fetch('DB_PASSWORD') { '' } %>
  variables:
    sql_mode: TRADITIONAL # Read more: https://github.com/rails/rails/issues/25924

development:
  <<: *default

test:
  <<: *default
  database: our_test_server

production:
  <<: *default
 类似资料:
  • 我的插座有问题。io作为一名广播员与laravel echo合作。 我试过什么: 我可以看到用户在日志中连接: 我的队列正在运行,正在正确记录所有事件。 我可以在redis控制台中完美地看到redis我的事件和数据库通知。 但是没有广播任何事件,我也没有在laravel echo服务器控制台中看到它们。一切都在我的本地主机上运行,但在生产环境中没有,我失去了理智。 以下是我的laravel ech

  • 你好,我有一个我开发的dll。我在使用dll导入的网站中使用此dll。当我通过visual studio运行网站时,一切都正常。但当我用iis运行它时,它没有错误。请参阅所附代码。谢谢在这里输入图像描述

  • 我有一个应用程序,它使用一个在开发环境中工作的数据列表,但在生产环境中返回一个没有查找的空白字段。我想广泛使用datalist,因为它很容易提供一个自动完整的工具,但除非它在生产中工作。 Dev是在Win7下的IE11.0上的MVC VS 2010,在HTML5Test中得分302。产品是服务器2012 R2标准上的IE11.0,报告为Win8.1,在HTML5Test中得分为312分。 经过大量

  • 以下代码在我的localhost上运行完美,但在我的实时服务器上显示了以下错误 警告:move_uploaded_file(.../uploads/76948893.jpeg):无法打开流:没有此类文件或目录 警告:move_uploaded_file():无法将'/tmp/phppxvRs8'移动到'…/上传/76948893.jpeg' 它所做的很简单,它获取来自 html 表单的数组 [“p

  • 我正在自学servlet,找到了一些非常好的教程,并在Eclipse Neon EE中取得了巨大成功。(非常基本的servlet,只提供一个简单的静态网页) 在安装Eclipse Neon EE之前,我安装了Tomcat standalone,并对其进行了测试,得到了regulat apache Tomcat页面。我找到的教程还指导我如何在Eclipse中设置tomcat服务器。他们还向我展示了如

  • 检测到问题! 如果没有配置的空闲端口,MySQL将无法启动!您需要卸载/禁用/重新配置阻塞应用程序,或者重新配置MySQL和控制面板以在不同的端口上侦听