본문 바로가기

DB

MySQL 기초

MySQL

 

먼저! mairadb와 mysql을 같이 설치하면 충돌납니다.

mariadb-server를 설치하고
yum -y install mariadb-server

mairadb를 설치하고
yum -y install mariadb

mariadb를 실행시킨다
systemctl start mariadb

또는

yum -y install mysql

systemctl start mysql

접속 후 데이터베이스 보기

DB SQL문

-- DB 보기
show databases;

-- 만약 sql DB가 존재하면 우선 지운다.
drop database if exist sqlDB;

-- DB 생성
create databse sqlDB;

-- DB 선택
use sqlDB;

데이터베이스의 이름은 대소문자를 구분하여 사용하는 것이 좋다.

 

테이블 생성

CREATE TABLE DB명.TABLE명 (
  컬럼명1 INT PRIMARY KEY AUTO_INCREMENT, -- 기본키 숫자 자동 증가 설정
  컬럼명2 CHAR(15) NOT NULL,
  컬럼명3 INT,

  PRIMARY KEY(컬럼명1),
  FOREIGN KEY(컬럼명2) REFERENCES 테이블명(컬럼명) -- 자기자신 외래키 참조
  FOREIGN KEY(컬럼명3) REFERENCES 다른테이블명(컬럼명a) -- 다른테이블 외래키 참조
);


-- 테이블이름을 띄어쓰기 하고싶으면 ``를 써야 한다.
create table `TESTSQL`(id InT);

 

 

테이블 운영 SQL문

-- 테이블 이름 조회
SHOW TABLES;

-- 테이블 구조 조회
EXPLAIN customer;

-- 테이블 생성
CREATE TABLE 테이블이름 (필드이름1 필드타입1, 필드이름2 필드타입2 ...)

-- 테이블 삭제
DROP TABLE customer;

-- 테이블 수정
ALTER TABLE customer MODIFY name CHAR(20);
-- -> customer 테이블의 name 필드 데이터 타입을 CHAR(20)으로 변경

ALTER TABLE customer CHANGE name fullname CHAR(20);
-- -> customer 테이블의 name 필드 이름을 fullname으로 바꾸고 자릿수는 CHAR(20)으로 지정

ALTER TABLE customer ADD phone VARCHAR(20) AFTER name;
-- -> customer 테이블에서 name 필드 바로 다음에 전화번호를 의미하는 phone 필드를 추가

ALTER TABLE customer DROP age;
custmoer 테이블에서 age 필드를 삭제

--테이블 조회
SELECT * FROM customer;
-- -> cusmoer 테이블에서 모든 행의 모든 필드를 조회

SELECT id, name FROM customer;
-- -> cusmoer 테이블에서 모든 행의 id 필드와 name 필드 값을 조회

SELECT id, name FROM customer WHERE id = 'john';
-- -> cusmoer 테이블에서 id 필드 값이 'john'인 행의 id 필드와 name 필드 값을 조회

SELECT id, name FROM customer WHERE age >= 25;
-- -> custmoer 테이블에서 age 필드 값이 25 이상인 행의 id vlfemdhk name 필드 값을 조회

 

HEidiSQL - MYSQL GUI 환경

https://www.heidisql.com/download.php?download=installer

 

Download HeidiSQL

Download HeidiSQL 12.6, released on 05 Nov 2023 Please disable your adblocker and reload the page to enable HeidiSQL downloads. Or, if you can't overcome the temptation, rightclick the anchor and click "copy link" to get it. Compatibility notes HeidiSQL ru

www.heidisql.com

Installer 누르고 다운 받으면 된다.

MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'dba'@'192.168.56.1' IDENTIFIED BY 'newpass';
Query OK, 0 rows affected (0.00 sec)
    
grant all privileges on .:

grant: 권한을 부여하는 SQL 명령어입니다.
all privileges: 모든 권한을 의미합니다.
*.*: 모든 데이터베이스의 모든 테이블에 대한 권한을 지정합니다.

to 'dba'@'192.168.56.1':

'dba': 사용자 이름입니다. 여기서는 'dba'로 설정되어 있습니다.
'192.168.56.1': 호스트 주소입니다. '192.168.56.1'로 지정되어 있는데, 
이는 특정 IP 주소로부터의 연결만을 허용하겠다는 의미입니다. 
만약 모든 호스트로부터의 연결을 허용하려면 '%'로 지정할 수 있습니다.


identified by 'remotepass';:

identified by: 사용자의 비밀번호를 설정하는 부분입니다.
'remotepass': 여기서는 비밀번호를 'remotepass'로 설정하고 있습니다.
systemctl start firewalld

== 정책 리스트를 확인하고
firewall-cmd --list-service

== 정책으로 mysql을 추가해주어야 한다.
firewall-cmd --add-service=mysql

== 정책으로 mysql을 영구적으로 추가
firewall-cmd --add-service=mysql --permanent

화면처럼 설정하는데 사용자는 위에 생성한 'dba'다.
접속 후 새로 생성 들어가서 데이터베이스를 생성 할 에정이다.
zzzdb 생성 후 show databases로 생성된 데이터베이스를 볼 수 있다.

 

 

Mariadb / mysql 암호 재설정

1. db server를 실행 할 때 user table을 무시하고 실행

>> mysqld_safe --skip-grant-tables & 

mysql -u root -p

use mysql;

update user set password=password('mypass') where user='root'

*.mysqladmin -u root shutdown

 

'DB' 카테고리의 다른 글

MySql 샘플 DB  (0) 2024.02.01
Table 조인  (1) 2024.02.01
DB 생성과 정규화  (2) 2024.01.31
MySQL select문  (0) 2024.01.30
MariaDB 한글 깨짐 해결 방법  (0) 2024.01.30