Ubuntu
에 새로운 Server 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 주소에 할당했습니다.
mysql 버전 5.7 이상
/etc/mysql/mysql.conf.d/mysqld.cnf에서 주석 처리를 제거하고 루프백이 아닌 컴퓨터 IP 주소에 할당했습니다.
xxx를 귀하의 IP 주소로 바꾸십시오.
bind-address = xxx.xxx.xxx.xxx
bind-address = 0.0.0.0
또는 IP를 지정하지 않으려면 추가하세요 .
그런 다음 새로운 my.cnf 항목으로 MySQL을 중지했다가 다시 시작하십시오. 실행 후 터미널로 이동하여 다음 명령을 입력하십시오.
lsof -i -P | grep :3306
xxx의 실제 IP와 함께 이와 같은 내용이 반환되어야 합니다.
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
위의 명령문이 올바르게 반환되면 원격 사용자를 허용할 수 있습니다. 그러나 원격 사용자가 올바른 권한으로 연결하려면 localhost와 '%' 모두에서 해당 사용자를 생성해야 합니다.
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에 연결할 수 있습니다.
이것이 당신에게 도움이 되기를 바랍니다.