Unknown MySQL server host amazon rds - mysql

I'm using linux command line to access amazon rds mysql, however, i keep getting the Unknown MySQL host error.
here is the command:
mysql -uxxx -pxxxx -hmydb.xxxx.us-west-2.rds.amazonaws.com:3306
I have added MySQL rule in the security group, but it still does not work.

Or try:
mysql -u xxx -p xxxx -h mydb.xxxx.us-west-2.rds.amazonaws.com --port=3306

Related

Error mysql: unknown variable 'ssl-mode=VERIFY_IDENTITY' connecting to Mysql RDS using certificate

While trying to learn about aws services, I'm trying to connect to RDS instance from my ec2 instance using certificate.
I'm using this command to connect -
mysql -h <aws-account>.rdsinstance.<region>.rds.amazonaws.com --ssl-ca=rds-ca-2019-root.pem --ssl-mode=VERIFY_IDENTITY
But i get this error -
mysql: unknown variable 'ssl-mode=VERIFY_IDENTITY'
I'm able to connect without certificate using this command:
mysql -h .rdsinstance..rds.amazonaws.com -P 3306 -u admin -p
Has anyone seen this before? I searched around but couldn't find anything that would help me.
If you have any suggestions/solutions please let me know
MyMysql version:
mysql --version
mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
Looks like mysql --help does not have --ssl-mode option. I removed it and was able to connect. (below is the command i used, just for reference)
mysql -h <aws-account>.rdsinstance.<region>.rds.amazonaws.com --ssl-ca=rds-ca-2019-root.pem -u <user> -P 33306 -p
in mysql firing >'status' command confirmed SSL is being used for connection.

Mysql ERROR : not connected

I am trying to connect to MySQL database from MySQL shell on windows.
No matter what I type in MySQL shell, it keeps giving me error : 'Not connected'.
Query eg 1 : mysql --host=localhost --port=3306 --user=root -p;
Query eg 2 : mysql -u root -p
O/P : ERROR: Not connected
I have MySQL server installed on my machine. Also MySQL service is running in the background.
Also, I was able to connect from MySQL workbench.
ERROR MESSAGE
MySQL Workbench Connection
My temporary workaround is that I make use of ssl protocol to connect to MySQL server :
MySQL> \connect root#localhost
MySQL localhost:33060+ ssl SQL > show databases;
The first step is that you need to check if you are in the MYSQL Shell SQL mode or JS mode.
Then if you are in SQL mode then you are good to go else you need to switch to SQL mode by this command
\sql
The next step is to connect using this command
\connect root#localhost
In your case, you might have given the privilege as the IP address so you need to check your localhost IP which can be done by this command in your command prompt.
ipconfig and then just check the IP address and put it in place of localhost in the previous command. If this still doesn't works then put 127.0.0.1:3306.
After this, it will prompt to add or save the password , enter a unique password there.
After this you are good to go and check the user and localhost after this by this command
SELECT user, host FROM mysql.user;
Try mysql -u root -p
I haven't used MySQL shell, I typically use gitbash and it works just fine
I had faced the same issue on my Windows 10 machine with MySQL 5.7 and the following commands helped me:
mysqlsh.exe - to open mysql shell; then
\sql - to start working with SQL;
finally:
\connect root#127.0.0.1:3306
You can use:
mysql -uroot -hlocalhost -P3306 -p
or
mysql -uroot -h127.0.0.1 -P3306 -p
or
mysql -uroot -p

Mysql[MariaDB] - Unknow error 1130

I'm trying to connect to a database and I'm getting this error:
ERROR 1130 (HY000): Unknown error 1130
Here is a command which I'm using:
mysql --host HOSTNAME --user MYUSERNAME -p MYDATABASENAME
I'm using Arch Linux. Thanks in advance for the help !
mysql --host HOSTNAME --user MYUSERNAME -p MYDATABASENAME
MYDATABASENAME - Should be Password not DatabaseName..
Syntax:
shell> mysql --host=localhost --user=myname --password=password mydb
shell> mysql -h localhost -u myname -ppassword mydb
Ref: https://dev.mysql.com/doc/refman/5.7/en/connecting.html
ERROR 1130 translates into Host '<hostname/IP>' is not allowed to connect to this MariaDB server, not sure why you see it as unknown error.
It means that there are no users configured with host=<your hostname/IP> on the server where you are connecting to -- that is, there is no user MYUSERNAME#<your hostname/IP>, or even <anything>#<your hostname/IP>, or <anything>#'%'.
Hi this is similar to phpMyAdmin Remote Access
Basically you have to first configure remote access. Here is a link for MariaDB on Arch Linux remote access configuration. https://dominicm.com/install-mysql-mariadb-on-arch-linux/
Edit config locally.
Config file sudo nano /etc/mysql/my.cnf
Grant privilege to table for user
GRANT ALL PRIVILEGES ON databasename.* TO 'dbusername'#'%' IDENTIFIED BY 'dbpassword';
Restart Mysql/MariaDB
Hopefully this helps.
try mysqld --skip-grant-table
Not sure why but it helped my teammate as she reported.
More details here. https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords

Querying remote MySql database with bash

I'm trying to query remote database with the following script.
some_db="somedb"
isAnythingToProcess=$(mysql -uroot -proot -D$some_db -e "$checkSearch");
This works for me locally however whenever i try to run bash script to remote AWS server I get error
ERROR 1049 (42000): Unknown database 'somedb'
Any hints?
P.S. The database exists for sure. I can connect to it via MySQL client.
You need to add the parameter for remote host -h
some_db="somedb"
isAnythingToProcess=$(mysql -uroot -proot -h REMOTE_IP -D$some_db -e "$checkSearch");

how to run command "mysqladmin flush-hosts" on Amazon RDS database Server instance?

I got a database server failure, says host is blocked because of many connection errors. It ask me to unblock with 'mysqladmin flush-hosts'
how and where should I run this command to our amazon rds database server?
thank you
For normal MySQL, just connect as the 'root' administrative super user, and issue the command:
FLUSH HOSTS
Even in the case of too many connections, MySQL should be keeping a connection in reserve so that a super user can connect.
The mysqladmin client generally connects as root anyway and issues the above SQL.
Login to any other EC2 instance you have that has access to the RDS instance in question and has mysqladmin installed and run
mysqladmin -h <RDS ENDPOINT URL> -P 3306 -u <USER> -p flush-hosts
you will be prompted for your password
When an Amazon RDS instance is blocked because the value of max_connect_errors has been exceeded, you cannot use the host that generated the connection errors to issue the "flush hosts" command, as the MySQL Server running on the instance is at that point blocking connections from that host.
You therefore need to issue the "flush hosts" command from another EC2 instance or remote server that has access to that RDS instance.
mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts
If this involved launching a new instance, or creating/modifying security groups to permit external access, it may be quicker to simply login to the RDS user interface and reboot the RDS instance that is blocked.
I fixed this error on my RDS instance by rebooting it from the AWS management console. HTH
[edit: lol downvotes]
On Amazon RDS FLUSH HOSTS; can be executed from default user ("Master Username" in RDS info), and it helps.
Since the hosts is blocked. try connect it from other host and execute the mysqladmin flush-hosts command.
mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
You will have to connect your RDS through a computer which as mysql installed on it
I used one of my hosting VPS using SSH
After i was logged in my VPS ( i used putty ) It was simple, in the prompt i entered the following command:
mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts
You can restart the database on RDS Admin.
You can flush hosts local MySQL using following command:
mysqladmin -u [username] -p flush-hosts
**** [MySQL password]
or
mysqladmin flush-hosts -u [username] -p
**** [MySQL password]
Though Amazon RDS database server is on network then use the following command as like as flush network MySQL server:
mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts
In additional suggestion
you can permanently solve blocked of many connections error problem by editing
my.ini file[Mysql configuration file]
change variables max_connections = 10000;
or
login into MySQL using command line -
mysql -u [username] -p
**** [MySQL password]
put the below command into MySQL window
SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;
check veritable using command-
show variables like "max_connections";
show variables like "max_connect_errors";
got this error today on a customer rds while they were using Heidi Sql client.
We simply used 'mysqlroot' on the ec2 that talks to the rds in question to connect, followed by issuing the 'flush hosts;' cmd.