-
1. [M1 Mac] Mysql 시작하기DB 2022. 3. 2. 12:36
목차
1. Mysql 설치하기
2. 데이터베이스의 구조 : 그림
3. SQL 문법
4. 웹서버와의 통신❗️수정중
brew install mysql brew --version brew services start mysql mysql_secure_installation mysql -uroot -p disallow root login remotely : 이거만 n함....
homebrew가 설치되어 있는 m1 맥에서 mysql을 다운받는법
터미널에서
brew install mysql
자동으로 m1맥에 맞는 mysql을 찾아서 다운로드 해줬다.
시간이 살짝 걸렸음.
설치가 완료된 후에는
mysql --version
으로 잘 설치가 되었는지 확인해보기
mysql Ver 8.0.28 for macos11.6 on arm64 (Homebrew)
내 컴퓨터에서는 이렇게 떴다.
설치 후 처음 시작해보기
brew services start mysql
암호, 초기 설정
mysql_secure_installation
y, n 고르라는 부분은 다 y로 체크하고 (정확히 모르겠지만 일단 이렇게 하면 된다고 함.)
중간에 패스워드 기입하는 부분에서 패스워드 수준?을 0,1,2 중에서 고르고 설정할 패스워드를 입력하면 된다.
나는 0으로 LOW 수준의 패스워드 (길이만 설정)로 선택했다.
질문으로 나오는게 아래에 있는 내용인데.. 그냥 다 y 눌러서 진행해도 무방하다.
Would you like to setup VALIDATE PASSWORD component? (y 눌러서 패스워드 설정)
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: (나는 0으로 함. 보안 신경쓰이면 1이나 2로 복잡한 패스워드를 설정하자)
New password: (패스워드 입력. 터미널화면에는 보이지 않으니까 그냥 치고 엔터 누르면 됨)
Re-enter new password: (확인용으로 한번 더)
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No)
Remove anonymous users? (Press y|Y for Yes, any other key for No)
Disallow root login remotely? (Press y|Y for Yes, any other key for No)
Remove test database and access to it? (Press y|Y for Yes, any other key for No)
Reload privilege tables now? (Press y|Y for Yes, any other key for No)
All done! 이 나오고 세팅이 끝난다.
mysql 사용하기
mysql -uroot -p
Enter password: 아까 설정한 패스워드를 입력하자
mysql>
이렇게 뜨면 이제 사용가능한 상태가 된 것이다.
종료하고 싶을때는
mysql> exit
입력하면
Bye 가 나오고 종료된다.
데이터베이스 보기
show databases;
use [데이터베이스명];
show tables; : 선택한 데이터베이스의 테이블 목록 나옴
SQL 문법 배우기
#SQL
##DDL : 데이터베이스나 테이블 만들 때 사용
##DML : 테이블 안에 있는 데이터를 조작할 때 사용 (가장 많이 쓰는 문법)
##DCL : 권한설정할 때 씀 (자주 사용 x)
// DML
게시판[1].작성자 : SELECT문
게시판[게시판.length -1].제목 = 'subject10' : UPDATE문
INSERT문
DELETE문
SELECT 필드명(ex. 제목, 작성자, 작성일) FROM 테이블명; : 테이블 안에 있는 모든 정보를 가져오기
게시판 table 제목 작성자 작성일 [0] subject1 name1 2022-02-16 [1] subject2 name2 [2] subject3 name3 SELECT 제목, 작성자, 작성일 FROM 게시판;
=> mysql에서 보여줌
desc 테이블명; : 테이블에 있는 필드내용 가져오기
desc user;
=> user 테이블의 필드 목록 볼 수 있음
필드에는 타입이 존재함 ex) char(32), char(255), enum('N','Y') 이건 무슨 뜻인지 모르겠음
sql 구문을 작성할 때 DDL, DML, DCL 문법을 대문자로 적는것이 국룰...
대문자로 쓰는 습관 들이는 게 좋음
SELECT User, Host, plugin FROM user;
UPDATE문 ... WHERE 절
SELECT 제목, 작성자, 작성일 FROM 게시판 WHERE 필드='값';
필드에도 각각 데이터타입이 존재하므로 string타입이면 (char) ' ' 따옴표 사용해서 string으로 입력해야함
UPDATE user SET plugin='caching_sha2_password' WHERE User='root'
UPDATE [테이블명] SET [필드] = [값]
[필드]의 모든 값을 [값]으로 바꿈
UPDATE [테이블명] SET [필드] = [값] WHERE [필드] = [값];
UPDATE 게시판 SET subject='subject_new' where subject = 'subject3';
root 계정에 password 있는지 없는지 알아보기
SELECT user, authentication_string FROM user;
user 내의 plugin 필드 항목이 암호화하는 방식을 담고 있음 (caching_sha2_password, auth_socket ..)
DCL
그냥 기록만 해두고 넘어가자. 잘 쓸 일이 없다.
패스워드 있는 경우 변경할 때
보안수준 확인 show variables like 'validate_password%'; 항목 중 length (8) 와 policy (LOW) 확인가능 변경하려면 set global validate_password.policy = LOW; set global validate_password_length = 4; 비밀번호 변경 alter user 'root'@'localhost' identified by '[변경할 비밀번호]'; 유저 생성하기 create user 'hanbin'@'%' identified WITH mysql_native_password By 'hanbin00'; %(누구나) or localhost(이컴퓨터) or IP(해당 아이피만) mysql_native_password 방식 user : hanbin password : hanbin00 -> 내가 맨날 쓰는 비번으로 바꿨음. SELECT user FROM user; -> hanbin 유저가 추가된 것 확인
user 설정한 후에는 exit으로 mysql 나가고
터미널에서
mysql -u[유저명] -p[패스워드]
입력해서 접속
데이터베이스 생성하기
CREATE DATABASE [데이터베이스명]; root계정이 아닌 사용자계정으로 접속 시 오류남 오류 : ERROR 1044 (42000): Access denied for user 'hanbin'@'%' to database 'example' > 권한이 없어서 안되는 것. 권한을 부여해주는 작업을 해야함 사용자계정에서는 show databases; 해도 권한없는 부분은 안보임 root계정으로 다시 접속 mysql> grant all privileges on *.* to 'hanbin'@'%' with grant option; 전체권한을 hanbin 계정에도 부여함 hanbin 계정으로 다시 접속 CREATE DATABASE [데이터베이스명];
사용자명
사용자패스워드
사용할 DB명
IP 주소
sudo netstat -ntlp
'DB' 카테고리의 다른 글
2. Mysql - 명령어 정리 (0) 2022.03.02