M1 맥북 가상머신(VMware) Linux(Ubuntu)에 MySQL을 설치해보자.
Ubuntu 터미널에 접속한다.
가상머신으로 직접 들어가거나, 맥북 터미널에서 아래 명령어를 통해 접속할 수 있다.
ssh zihooy@192.168.0.76 -p22
//ssh {Ubuntu 사용자명}@맥북Ip -p22
sudo apt-get update
sudo apt-get install mysql-server
계속해서 Ubuntu 터미널에서 작업한다.
sudo ufw allow mysql
sudo systemctl start mysql // MySQL 실행
sudo systemctl enable mysql // Ubuntu 서버 재시작시 MySQL 자동 재시작
계속해서 Ubuntu 터미널에서 작업한다.
cd /etc/mysql/mysql.conf.d
sudo vi mysqld.cnf
아래 화면처럼 bind-address 부분을 0.0.0.0으로 바꿔준다.
mysql을 재시작한다.
sudo systemctl stop mysql
sudo systemctl start mysql
// 혹은 restart
sudo systemctl restart mysql
sudo /usr/bin/mysql -u root -p
mysql> SELECT User, Host, authentication_string FROM mysql.user;
mysql> CREATE DATABASE DB01;
mysql> SHOW DATABASES;
주의할 점은, 계정에 접근할 수 있는 ip를 부여할 때, create 단계에서부터 동일하게 ip를 부여해야 한다.
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Host, authentication_string FROM mysql.user;
mysql> CREATE USER 'testuser01'@'192.168.0.%' IDENTIFIED BY '1234';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Host, authentication_string FROM mysql.user;
❗️위에서 생성한 user에게 부여된 ip와 다르면 에러가 난다❗️
mysql> grant all privileges on DB01.* to testuser01@'192.168.0.%';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Host FROM mysql.user;
아래와 같이 user를 조회했을 때 user와 host가 적용되면 완성 !
보안을 위해 모든 ip의 접속을 허용했던 root 계정은 삭제해버리자.
mysql> DROP USER 'root'@'%';
mysql을 종료하고(exit 명령어 입력) Ubuntu 터미널에 접속한다.
sudo apt update
sudo ufw allow 3306 // 3306 포트 방화벽을 open
sudo ufw enable // 방화벽 활성화
ip addr // ip 확인
그리고 Ubuntu의 ip를 확인하기 위해 ip addr
명령어를 입력한 후 ip를 메모장에 저장해두자.
잘 적용되었는지 확인하기 위해 다음의 명령어를 입력한다.
sudo ufw status
맥북에서 가상머신으로의 접근을 허용해야 한다.
맥북 Local 터미널에 접속한다.
sudo vi /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf
파일 열고
[incomingtcp] 부분을 찾는다.
이 밑에 아래와 같은 형식으로 작성한다.
위에서 메모했던 Ubuntu의 ip를 넣어주어야 한다.
[host port number] = [virtual machine IP address]:[virtual machine port number]
다음의 명령어로 다시 시작해준다.
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start
아래의 화면과 같이 hostname에는 본인의 맥북 local ip 주소를, port는 3306을, username에는 생성한 사용자 명을, password에는 사용자 비밀번호를 입력한다.
나는 testuser01에게 DB01 데이터베이스에 대한 접근만 허용했기 때문에, 아래의 화면처럼 DB01 한개의 데이터베이스가 보이게 된다.