getpass не работает в PyCharm, потому что консольный ввод не поддерживается в среде разработки PyCharm. Решение этой проблемы заключается в использовании альтернативных средств безопасного ввода пароля.
Один из вариантов - использовать стандартный модуль `msvcrt` вместо `getpass`.
Вот пример использования `msvcrt`:
```python
import msvcrt
try:
print("Login to MySQL")
username = input("Username: ")
print("Password: ", end="")
password = ""
while True:
key = msvcrt.getch()
key = key.decode("utf-8")
if key == '\r':
break
password += key
print('*', end="")
print()
with connect(
host="localhost",
user=username,
password=password,
database="python_db"
) as connection:
print("Connected successfully")
print(connection)
```
`msvcrt.getch()` отвечает за получение символа ввода без его отображения на экране, и затем мы отображаем звездочку (*), чтобы скрыть ввод пароля.
Еще один вариант использования модуля `msvcrt` можно найти в этом ответе на Stack Overflow: https://stackoverflow.com/a/34952474/12357846
Если вы все равно хотите использовать `getpass` в PyCharm, можно запустить код с помощью командной строки или другой IDE, поддерживающей консольный ввод.