在运行rails 5.2.2和ruby 2.6.1的家庭服务器上,一切正常;但是在我的linode上,我拒绝用户'deploy'@'localhost'的访问权限(使用密码:YES)在家庭服务器上的database.yml中,我使用david作为用户,这是unix帐户。在linode上使用相同的database.yml,我已在database.yml文件中以用户身份进行部署。 deploy是linode服务器的unix帐户。
我已经尝试了root帐户并将所有权限授予root和deploy,但都不起作用
... mysql> show grants; + ------------------------------------------------- ---------- + |部署@ localhost的授权+ ------------------------------------------------- ---------- + |授予所有特权。要'部署'@'localhost'| |在mysql
上授予所有特权。*'部署'@'localhost'| + ------------------------------------------------- ---------- + 2行(0.00秒)......
home.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
...
等等,你有两个不同的database.yml
文件?
据我所知,你有一个david@localhost
,另一个有deploy@localhost
。
我没有理由这样做。
database.yml文件的全部目的是定义localhost,staging,testing等的登录和生产。在生产中,您通常使用.env文件或使用Rails 5.2的加密凭据进行设置。
这样,您就可以将Linode服务器凭据存储在安全的地方,而不会牺牲功能。
以下是我们自己的database.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