Больше не может подключаться к RDS MySQL после обновления до Ubuntu 20.04 (rails) - PullRequest
2 голосов
/ 05 мая 2020

Иногда я подключаюсь к удаленному MySQL, размещенному на AWS RDS.

Но, поскольку я обновился до Ubuntu 20.04, ruby больше не может подключаться к RDS / MySQL

Получение этой ошибки.

SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol (Mysql2::Error::ConnectionError)
  /home/mathieu/.rvm/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect'
  /home/mathieu/.rvm/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
  /home/mathieu/.rvm/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/connection_adapters/mysql2_adapter.rb:25:in `new'
  /home/mathieu/.rvm/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/connection_adapters/mysql2_adapter.rb:25:in `mysql2_connection'

Моим первым рефлексом было удалить гем mysql2 и повторно установить его, поэтому расширение C использует установленные в настоящее время библиотеки openssl и друг.

это не сработало, поэтому я удалил все свои установленные рубины (я использую rvm) и переустановил их.

И я получаю ту же ошибку в командной строке, если я не отключу SSL

$ mysql -u foo1mysql -p -h foo1mysql.us-east-1.rds.amazonaws.com foo1mysql_staging 
Enter password: 
ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol

$ mysql -u foo1mysql -p -h foo1mysql.rds.amazonaws.com foo1mysql --ssl-mode=disabled
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20933
Server version: 5.6.41-log Source distribution

mysql> select count(*) from accounts;
+----------+
| count(*) |
+----------+
|       20 |
+----------+
1 row in set (0.37 sec)

mysql> ^DBye

$ mysql -u foo1mysql -p -h foo1mysql.rds.amazonaws.com foo1mysql --ssl-mode=required
Enter password: 
ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
$ 

теперь я ищу возможность указать ssl_mode=disabled в моем config / database.yml, но было бы лучше включить SSL.

Кто-нибудь еще попал в эту проблему? какой-то параметр, который я могу включить в RDS, возможно?

Нашел этот связанный вопрос на serverfault https://serverfault.com/questions/1014747/cant-connect-to-remote-mysql-5-6-server-from-local-mysql-8-0-client-ssl-protoc

кто-то в комментарии предлагает мне обновить сервер MySQL на Экземпляр RDS. С 5.6.41 до 5.6.46, но, видимо, я не могу, потому что я на m1.small, и я не могу перейти на t2.small или t3.small по какой-то другой причине RDS ....

1 Ответ

2 голосов
/ 08 мая 2020

Оказалось, что мой экземпляр RDS действительно был слишком стар (создан в 2015 году), хотя я недавно выполнил недавнее принудительное обновление SSL CA. Я больше не мог подключиться.

Я не мог сделать простой удар MySQL ревизии, потому что я использовал m1.small, который слишком старый. и переключение на t3.small было недоступно в моем регионе доступности. и после проверки их поддержки переключение региона доступности невозможно.

, поэтому я сделал снимок. и я восстановил свой снимок в t3.small после этого, я мог поднять ревизию mysql на моем только что созданном экземпляре.

проблема решена.

небольшое неудобство, мне нужно было обновить конфигурации везде, где использовался этот RDS, и в конце концов я убил старую.

instances migrated

...