How to Change Heroku-Postgresql DB password - ruby-on-rails-3

Simple question but my googling has completely failed me.
How do you change the password for the postgres database for a Heroku Rails application?

heroku pg:credentials DATABASE --reset ought to do it
Source: https://devcenter.heroku.com/articles/heroku-postgresql

pg:credentials --reset is deprecated. Please use pg:credentials:rotate instead
heroku pg:credentials:rotate DATABASE -a sushi
Source: https://devcenter.heroku.com/articles/heroku-postgresql-credentials

This used to not be possible, but now with the new Heroku Postgres plans you can now 'rotate' your database credentials.
You can do this via heroku pg:credentials HEROKU_POSTGRESQL_GRAY_URL --reset where the HEROKU_POSTGRESQL_GRAY_URL is the correct name based on your heroku config output.
On old plans, where this may be unsupported, you may be able to get heroku support to do it if you logged a ticket although they'll probably want a valid reason.

Related

How to fix the issue: "The specified database user/password combination is rejected" using Intellij IDEA?

I'm using Spring application and stack is like: Java 11, Spring Boot 2.2.1.RELEASE.
(technology versions may vary here)
When I try to connect to the database via Data Source using Intellij IDEA, I get always the issue like:
The specified database user/password combination is rejected:
[28P01] FATAL: password authentication failded for user 'postgres'
How can I fix it?
To be noticed: this answer is similar, but not related to:
Unable to connect from Intellij to mySql running in docker container - "specified database user/password combination is rejected"
To fix it:
you need to check your application.properties file and change the value of user password on line:
spring.datasource.password=your_password
The cause of issue is:
your value of the property spring.datasource.password in application.properties
does not match the user password what was selected by default during installing your database system.
E.g. more specifically on the step "Enter the password for the database superuser (postgres)":
To clarify: provided example is for PostgreSQL, but it can be another database system.
Edit: this assumes you run Linux
if the other answer provided by invzbl3 doesn't work, check out this solution, it worked for me. Make sure to restart afterwards.
https://docs.fedoraproject.org/en-US/quick-docs/postgresql/#_initial_configuration
If you’re getting ident errors from your app you’ll probably need to perform the accepted solution described at https://serverfault.com/questions/406606/postgres-error-message-fatal-ident-authentication-failed-for-user?newreg=a4fdc3e21349449985cc65b82399c5b4
(if you don't have nano, just use any other text editor)
sudo nano /var/lib/pgsql/data/pg_hba.conf
and edit host all all 127.0.0.1/32 ident to host all all 127.0.0.1/32 md5.
This should allow most applications to connect with username/password.

Azure SQL DB Error, This location is not available for subscription

I am having pay as you go subscription and I am creating an Azure SQL server.
While adding server, on selection of location, I am getting this error:
This location is not available for subscriptions
Please help.
There's an actual issue with Microsoft servers. They have too many Azure SQL database creation requests. They're currently trying to handle the situation. This seems to affect all types of subscriptions even paid ones. I have a Visual Studio Enterprise Subscription and I get the same error (This location is not available for subscriptions) for all locations.
See following Microsoft forum thread for more information:
https://social.msdn.microsoft.com/Forums/en-US/ac0376cb-2a0e-4dc2-a52c-d986989e6801/ongoing-issue-unable-to-create-sql-database-server?forum=ssdsgetstarted
As the other answer states, this is a (poorly handled) restriction on Azure as of now and there seems to be no ETA on when it shall be lifted
In the meantime, you can still get an SQL database up and running in Azure, if you don't mind doing a bit of extra work and don't want to wait - just set up a Docker instance and put MSSQL on it!
In the Azure Portal, create a container instance. Use the following docker image: https://hub.docker.com/r/microsoft/mssql-server-windows-express/
while creating, you might have to set the ACCEPT_EULA environment variable to "Y".
after it boots up (10-20 minutes for me), in the portal, connect to it with the "sqlcmd" command and set up your login. In my case, I just needed a quick demo db, so I took the "sa" login, ran "alter login SA with password ='{insert your password}'" and "alter login SA enable". See here for details: https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-login-transact-sql?view=sql-server-ver15#examples
and voila, you have an SQL instance on Azure. Although it's unmanaged and poorly monitored, it might be enough for a short-term solution. The IP address of the docker instance can be found in the Properties section of the container instance blade.
Maybe you can reference this blog: Azure / SQL Server / This location is not available for subscription. It has the same error with you.
Run this powershell command to check if the location you choose is available:
Get-AzureRmLocation | select displayname
If the location is available, the best way to resolve this issue just contact the Azure support to have this enabled for you. You can do this for free using support page on your Azure Portal.
They well contact you can help you solve it.
Hope this helps.
This is how I solved myself. Let me tell you the problem first. Then the solution.
Problem: I created a brand new free Azure account (comes with $250 free credit) for a client. Then upgraded to pay-as-you-go subscription. I was unable to create Azure SQL db. The error was 'location is not available'.
How I solved: I created another pay-as-you-go subscription in the same account. Guess what - I was able to create SQL db in my new subscription right away. Then I deleted the first subscription from my account. And yes, I lost the free credit.
If your situation is similar to mine, you can try this.
PS: I have 3 clients with their own Azure accounts. I was able to create SQL Db in all of their accounts. I think the problem arises only for free accounts and/or for free accounts that upgraded to pay-as-you-go accounts.
EDIT - 2020/04/22
This is still an ongoing problem up to today, but I was told by Microsoft support that on April 24th, a new Azure cluster will be available in Europe. Thus it might get possible to finally deploy SQL Server instances on Free accounts around there.
Deploy a docker container running SQL Server
To complement on #Filip's answer, and given that the problem still remains with Azure SQL Server, a docker container running a SQL Server is a great alternative. You can set yourself one very easily running the following command on the cloud shell:
az container create --image microsoft/mssql-server-windows-express --os-type Windows --name <ContainerName> --resource-group <ResourceGroupName> --cpu <NumberOfCPUs> --memory <Memory> --port 1433 --ip-address public --environment-variables ACCEPT_EULA=Y SA_PASSWORD=<Password> MSSQL_PID=Developer --location <SomeLocationNearYou>
<ContainerName> : A container name of your choice
<ResourceGroupName> : The name of a previously created Resource Group
<NumberOfCPUs> : Number of CPUs you want to use
<Memory> : Memory you want to use
<Password> : Your password
<SomeLocationNearYou> : A location near you. For example,
westeurope
Access SQL Server
Once the container instance is deployed, in the Overview you will be able to find an IP address. Use that IP address and the password you chose in the az container command to connect to the SQL Server, either using Microsoft's SSMS, or the sqlcmd utility
Some documentation regarding the image I have used can be found here.
More information on the command I have used here.

Error in Connection Testing in Mule Database connector

I am trying to connect mysql database with mulesoft database connector, but it is giving error while I do test Connection. I am not able to figure out what is wrong I am doing. Could you please put me in right direction?
Please ask for more information you need from me.
The problem you are facing is not because of Mule component.There may be several other reasons at MySQL side.
As you can see that your credentials are processed by MySQL however denied.This suggests that the problem may not be directly
related with credentials because if credentials were wrong the error would have been different then denied.
When credentials are denied, the problem is mostly related with:
Permission issue - Solution >> Grant permission to use "db_name" from "Localhost"
Your connection string looks fine but sometimes string encoding result this error
Some installed components are interfering with MySql -> Check the components installation
Also
LOCALHOST and "machine name" aren't the same to MySQL.
I'd check from the command line that you can connect to localhost:
mysql --user=<user_name> --password db_name
Enter password: your_password
If it fails, connect and run this with the appropriate permissions:
create user db_name#localhost identified by 'db_name';
grant select on <user_name>.* to db_name#localhost;
Never mind :) I found the solution although did not find what the problem was only suspecting that the root was not having any schema privileges ( as shown by MySQL Workbench GUI).
Earlier I was using command line with which I am not well versed; after struggling a little I downloaded MySQL workbench and added one more user with all administrative and schema privileges and used that to connect with Database connector and God Damn!! it's working.

Configuring Openfire server

While setting up the openfire server, I am facing issues in connecting to the database. Also the admin account is not getting created.
I followed the steps given here:
"https://www.igniterealtime.org/builds/openfire/docs/latest/documentation/database.html"
Have tried almost everything. Please if someone could help me with this.
Try deleting the schema. Create a new schema and no tables in it.
Please make sure your server and database in same system. If your database is in different system please check whether remote access is enabled in mysql.
First create an empty database with name openFire in database and then use
jdbc:jtds:sqlserver://[SERVERNAME]/[DATABASE];appName=jive;instance=[NAMEDINSTAN EC]
in my case the string was
jdbc:jtds:sqlserver://TelUpd01/openFire;appName=jive;instance=SQLEXPRESS
Use this configuration string while installation.

Unable to access external database from Heroku App

I have rails 3.2.13 application running on heroku. I want my application to access a remote MySQL database. For that I have changed the DATABASE_URL in heroku config. Here is how I did it
heroku config:add DATABASE_URL=mysql2://user_name:password#171.121.123.120:3306/database_name
Above command changes the database_url successfully.
But when I try to run heroku run rake db:migrate it errors out. Below is the error I get
Connecting to database specified by DATABASE_URL
rake aborted!
Access denied for user 'user_name'#'ec2-23-20-128-131.compute-1.amazonaws.com' (using password: YES)
/app/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect'
I have added wild card like %.%.%.% at my MySQL server to allow any IP to access database but even that is not working. I have able to access database from my local dev machine after adding those wild cards.
Thanks
Do you have your credentials defined in /app/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11/lib/mysql2/client.rb ? It looks like the migrate command is trying to pull the info from that file.
EDIT: sorry, the code block you had got cutoff on my screen. Does everything look right in the client.rb file?