기존 노트북에서 공부하던 DB 프로젝트 자바 파일을 다른컴퓨터에서 풀받으면서 DB 접속에 실패했다고 떴다.
DBMS: MariaDB (no ver.)
Case sensitivity: plain=mixed, delimited=exact
Socket fail to connect to host:address=(host=localhost)(port=3307)(type=primary). Connection refused.
port = 3307 에서 3306으로 수정해주었더니 해결되었다.
다른 이유로는 이전에 같은 호스트 이름으로 만든 DB 가 있으면, 중복으로 만들 수 없으니 해당 오류가 뜰 수도 있다. host 이름을 다른 것으로 수정해보자.
포트번호도 수정하고, 다른 컴퓨터에서 이용하던 user, password를 입력하고 testconnection 눌렀다.
또 에러가 떴다.
[28000][1698] (conn=8) Access denied for user 'root'@'localhost'
DB를 서버로 연결한 것도 아니니,
위의 두개를 먼저 확인해야 한다.
아래 두 코드를 순서대로 터미널에 입력한다.
mariadb
접속된다면 터미널에 바로 welcome to mariadb 라고 뜬다.
USEmysql
접속하면 비밀번호 없이 접속 가능하다.
SELECT user, host FROM mysql.user WHERE user='사용하는 이름';
계정정보를 확인했을 때
나는 사용하려는 host의 비밀번호 문자열authentication_string이
암호화되어있지 않고 invalid라고 떴었다.
아마 이전에 어떤 문제를 해결하려고 비밀번호를 바꾸려다가 그대로 방치해서 invalid라고 뜬 것 같았다.
ALTER USER '사용자이름'@'호스트이름' IDENTIFIED BY '새로운비밀번호';
FLUSH PRIVILEGES;
이렇게 비밀번호를 재설정해준다. 예를 들면 아래코드와 같다.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
그리고 다시 계정정보 확인 쿼리를 입력했을 때 authentication_string 이 암호화된문자열로 떠야함.