I have an Elastic Beanstalk application that can't connect to the database but the server it's running on can connect to the database just fine.
When I try to deploy my elastic beanstalk application, it gives me a database error Access Denied (the deploy process needs to connect to the database in order to run migrations. My database is on RDS. I have the environment variables for the database configured in the environment. I have the security groups set up to allow the environment servers to connect to RDS. When I ssh into the server, I can open a database connection through the database terminal to the database. It's only the application that can't connect. What is going wrong?
The problem is non-alphanumeric characters in the database password. In this case, the particular culprit is "$". Changing the database password to be purely alphanumeric solves it.
Elastic beanstalk environment variables are passed to your application through a shell script that it generates. If you have a dollar sign in your password, Linux will interpret this as a shell variable embedded in the password and will ignore anything after the dollar sign in the password.
Related
I'm deploying a legacy application that uses MySQL using Azure Database for MySQL. The thing is that the connection string is hardcoded into the application and i dont have access to the source code either but i do know the user and password that it uses to connect to the database.
I tried to connect it to my database on azure using iptables to redirect the traffic from the legacy application target ip to my azure instance ip, but i'm having a problem with the username since the leacy app does not specify a host in the user name and even if it did i have no way to change it.
I managed to connect it by creating a local instance of mysql(with the user and password that the legacy application uses) and using the Federated Engine to access the Azure Database, but it is too slow and i need another alternative.
So my question is, Is there any faster way to connect my application to the Azure Database?
What tool can I use to run sql profile against a AWS Aurora or AWS Mysql database? Seems like a simple task that I have done many times against local mysql sql db or ms sql server, but for the life of me I cannot get to work. Is this something that can be done? I have been trying to use Neor Profile without success. However, I'm able to use Neor Profile successfully on my local mysql db.
Because Neor Profile basically serves as a proxy, you have to use port 4040 in your application and then Neor connects to AWS via port 3306. I can successfully get Neor Profile 'profiling' against the AWS db but when I run my local application or mysql workbench, via port 4040, it doesn't connect, with a general connection error.
My question, which I can't find by searching the Internet or help files is...Can you perform a sql profile against a AWS Aurora or AWS Mysql database?
i have installed MySQL server with developer default, I can connect to database with local application, How ever i am not able to connect to database from other system on the network it saying unable to reach database. I access database with root user and password
please give me steps to configure my MySQL server so that i can access database from any system in my network
You will have to create a user allowing him to connect from any host ('user'#'%') and use that user to connect to your MySQL server machine. Also, you'll have to set bind-address of your MySQL configuration to your server machine's IP.
Check the following article. Although it is for Linux environment, you can get the general idea of what is to be done.
https://rtcamp.com/tutorials/mysql/remote-access/
I deployed my Rails app to Amazon EC2 server (Ubuntu), but I am thinking how to connect to MySQL database from terminal (SSL) and manually check data in database.
How to do that? I see in the database.yml file some credentials, but don't know how to connect/log in into MySQL on EC2 instance.
Thanks
There's no special magic involved here. An EC2 server is just... a server. This is not hosting like heroku or godaddy where your database is going to be hosted on a different db server.
Unless you explicitly setup a separate db server (which I don't think you did), you've got an entire virtual machine running Ubuntu, and the db server is most likely running on the same machine.
So you can ssh into the machine and just run the standard mysql client. Docs here: http://dev.mysql.com/doc/refman/5.6/en/mysql.html.
If you want to use some gui software such as sequel pro mentioned in one of the comments, you'll need to open up the ports in the aws console. Amazon closes all the ports by default. Do this to open up the port:
Open up the AWS control panel
Go to 'Security Groups'
Select the security group in the panel (you probably only have one).
Click the 'Inbound' tab.
Select Mysql from the dropdown list
Save the rule
This will open up port 3306 and enable you to use an external tool to see the server.
If you just want to call some sql to the database just to verify small amount of data, you can try doing these:
sql_statement = 'SELECT * FROM users'
ActiveRecord::Base.connection.execute(sql_statement).to_a
We have a fairly simple M$ Access db, split into front-end (forms, reports, etc.) and back-end (tables). Currently looking for a way to get the tables with all the critical data off of one desktop and hopefully into a MySQL database on our web host, and be able to connect to it from multiple PCs (still probably only one or two people connecting to it at any give time), and eventually, hopefully, migrate to a web application when time allows. Many of the examples I've read about people connecting an Access db front-end to a MySQL back-end seem to imply that they are doing so on a LAN, probably behind a firewall, etc.
Is it at all safe to connect a M$ Access front-end to a MySQL backend when that mysql server is running on a remote web host? Does the ODBC connector take care of encryption?
TIA,
Monte
You could use putty to mount a ssh tunnel to your mysql server and redirect the remote mysql port to your machine.
Using putty is pretty straightforward:
Give it your mysql server dns name as the host and go to "Connection/SSH/Tunnels", there you define the local port to connect in the "Source Port" field (e.g. 3307).
In the the "Destination" field put the dns name of your mysql server followed by a colon and the port mysqld is running in (e.g. mysql.example.org:3306).
Save this as a profile then connect and the remote mysql port will be availbable locally on port 3307.
Just make sure you restrict the user because by default he will have an ssh shell on the server.
Setting up key authentication would also be practical because you won't have to enter a password to connect to the server (but be sure to protect your key on disk by encrypting it).
EDIT: It seems the mysql odbc connector support ssl, you could use that too but I'd personnally choose to use SSH anyway as you will have it already on your mysql server.