Я создал новый Ubuntu
сервер v18 на Microsoft Azure
. Я создал входящее правило, разрешающееport 3306
Я побежалupdates and upgrades
Я сделалsudo apt install mysql-server
Я проверил, работает ли он, с помощью:
sudo service mysql status
И теперь я пытаюсь подключиться к нему через MySQL Workbench
и не могу подключиться к нему, когда нажимаю test connection
кнопку
Что еще я упускаю?
решение1
Чтобы предоставить MySQL доступ к чему-либо, кроме localhost, вам понадобится следующая строка
Для mysql версии 5.6 и ниже
раскомментирован в /etc/mysql/my.cnf и назначен IP-адресу вашего компьютера, а не loopback
Для mysql версии 5.7 и выше
раскомментировать в /etc/mysql/mysql.conf.d/mysqld.cnf и назначить IP-адресу вашего компьютера, а не loopback
Замените xxx на ваш IP-адрес.
bind-address = xxx.xxx.xxx.xxx
Или добавьте, bind-address = 0.0.0.0
если вы не хотите указывать IP.
Затем остановите и перезапустите MySQL с новой записью my.cnf. После запуска перейдите в терминал и введите следующую команду.
lsof -i -P | grep :3306
Это должно вернуть что-то вроде этого с вашим реальным IP в xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Если приведенное выше утверждение вернет правильно, вы сможете принимать удаленных пользователей. Однако для того, чтобы удаленный пользователь мог подключиться с правильными привилегиями, вам необходимо создать этого пользователя как на локальном хосте, так и в '%', как в.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
then,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
и наконец,
FLUSH PRIVILEGES;
EXIT;
Затем вы можете подключиться к своему MySQL.
Надеюсь, что это поможет вам.