반응형
# 환경
- ubuntu
- Oracle Cloud
- MariaDB (HediSQL)
외부 접속 가능 User 생성
1. 데이터베이스 접속
mysql -u root -p
2. 유저 생성
// 생성
CREATE USER '유저이름'@'%' IDENTIFIED BY '비번';
// 권한 부여
GRANT ALL PRIVILEGES ON mydatabase.* TO '유저이름'@'%';
// 설정 적용
FLUSH PRIVILEGES;
3. 3306 포트 열기
데이터베이스 연결 끊고, sudo 명령어로 포트를 열어준다.
sudo iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
4. SSH 연결
파워쉘에서 명령어로 연결해준다.
공용 ip는 클라우드에서 생성해야함.
ssh -i 파일명.key ubuntu@공용ip
5. 클라우드에서 3306 포트에 대한 수신 규칙 추가
6. DB 연결
# 에러 내용
@DESKTOP-U42L5N8:~$ sudo systemctl status mariadb
× mariadb.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mariadb; generated)
Active: failed (Result: exit-code) since Sun 2024-06-09 16:57:41 KST; 23s ago
Docs: man:systemd-sysv-generator(8)
Process: 19430 ExecStart=/etc/init.d/mariadb start (code=exited, status=1/FAI>
Jun 09 16:57:11 DESKTOP-U42L5N8 systemd[1]: Starting LSB: Start and stop the mysq>
Jun 09 16:57:11 DESKTOP-U42L5N8 mariadb[19430]: * Starting MariaDB database serv>
Jun 09 16:57:41 DESKTOP-U42L5N8 mariadb[19430]: ...fail!
Jun 09 16:57:41 DESKTOP-U42L5N8 systemd[1]: mariadb.service: Control process exit>
Jun 09 16:57:41 DESKTOP-U42L5N8 systemd[1]: mariadb.service: Failed with result '>
Jun 09 16:57:41 DESKTOP-U42L5N8 systemd[1]: Failed to start LSB: Start and stop t>
해결 방법
sudo apt autoremove --purge mysql-server\* mariadb-server\*
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql/
sudo mkdir -p /etc/mysql/conf.d
sudo apt install mysql-server
방화벽 설정 확인
# 방화벽 상태 확인
sudo ufw status
# 비활성화 상태
Status: inactive
# 방화벽 활성화
sudo ufw enable
# 활성화
Firewall is active and enabled on system startup
# 3306 포트 허가
sudo ufw allow 3306
mysql 권한 설정
먼저 mysql -u root -p로 접속해야 함.
모든 호스트로부터의 접속을 허가하려면 'localhost' 대신 '%'를 써야한다.
mysql> CREATE USER '유저네임'@'localhost' IDENTIFIED BY '비밀번호';
mysql> GRANT ALL PRIVILEGES ON *.* TO '유저네임'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
# 모든 접근 가능하도록
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
반응형
'프로그래밍' 카테고리의 다른 글
[캡쳐] 한 페이지 전부 스크롤 캡쳐하는 방법 (0) | 2024.06.15 |
---|---|
Node.js, React 초기 세팅 (0) | 2024.06.10 |
[Ubuntu] mariaDB 설치 (0) | 2024.06.08 |
[MongoDB] 접속 에러 (IP whitelist) (0) | 2024.06.07 |
[React] 리액트 라이브러리 hook의 useEffect (0) | 2024.06.06 |
댓글