MySQL 권한 설정 CREATE USER
--  USER 생성-- 서버 설정 CREATE USER 'username'@'host' IDENTIFIED BY 'password';-- 특정 플러그인 지정 (과거사용 5.7 이하)CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password'; -- 권한-- 모든 권한 + 모든 DB 접근 권한 부여GRANT ALL PRIVILEGES ON *.* TO 'username'@'host';-- 특정 DB 전체 권한 GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';-- 특정 테이블 전체 권한GRANT ALL PRIVILEGES ON database_name.table..
2024.06.13
no image
MySQL 테스트 데이터 생성하기(Faker) - 아무데이터 넣기
안녕하세요. JohnComputer입니다. 이따금씩 개발 테스트를 진행하다 보면 임의적인 데이터를 넣고 테스트를 진행해야 할때가 많은데요. 그렇다고 또 데이터를 만들기 위해서 까다로운 RDB의 요구 조건을 다 들어주면서 넣다 보면 참 힘듭니다. 또 언제 전부 INSERT VALUES... 하고 있기도 힘들고요. 그렇게 해서 찾게 된 이번 오픈소스! FAKER 사용 방법을 같이 정리해서 올려드리려고 합니다. 1. 기본 데이터베이스 만들기 CREATE DATABASE test CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), City varchar(255), RegistDate DateTime ); - 처음 ..
2023.03.04
no image
ERROR 1872 (HY000) : slave failed to initialize relay log info structure from the repository 에러 해결방법
마스터 슬레이브 구성 중 위와 같은 오류가 발생하였고 해당 오류의 경우 slave failed to initialize relay log info structure from the repository 슬레이브 실행 중 릴레이 로그 정보를 초기화 하지 못 했을때 발생하는 오류이다. 기존에 만들었던 Slave가 정상 종료가 안되었거나 Config나 Log에서 꼬일 수 도 있고 여러 이유가 있을 수 있다. 특히, Container 환경에서 처럼 계속 썻다 지웠다 실험하는 경우 해당 오류를 만날 수 있고 이런경우 해결 방법은 매우 간단하다. mysql > STOP SLAVE; mysql > RESET SLAVE; mysql > START SLAVE; 끄고 -> 초기화 하고 -> 다시 실행해주면 된다.
2022.08.25
no image
Ignoring query to other database... 오류 해결
사실 오류 해결이라 하기에도 애매하지만 이글을 검색 해본 분들은 필자 처럼 오타에 주의 해야한다 ㅠㅠ 갑자기 이런 메세지를 띄우며 쿼리가 안된다.. 아! root ??????? 오타입니다. -uroot 로 바꿔주세요
2022.08.25
Pymysql (Python2 -> Python3) 오류 발생
Pymysql을 이용해서 작업을 해야하는데 기존에 인터넷에 뿌려져 있는 Python2 버전으로 만약에 실행한 경우 예상치도 못한 오류가 발생할 수 있다. 예를들어 아래와 같은 positional argument 오류가 발생할 수 있습니다. 1 takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were given cs 이런 경우 Python3와 다르기 때문에 아래와 같이 수정해주시면 됩니다. 1 2 3 4 # import 수정 필요 import pymysql.curosors # connection 속성값을 모두 명시해야함. dbconnect = pymysql.connect( host = 호스트값, user..
2022.08.03
no image
SQL 기본 DML 조작법
1. 데이터 조작 언어 ( Data manipulation language) 데이터 조작언어에 대해서 알아보겠습니다. 데이터 조작언어에 종류1. SELECT (조회)2. INSERT (삽입)3. DELETE (삭제)4. UPDATE(수정) {글}
2020.07.27
반응형

--  USER 생성

-- 서버 설정 
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

-- 특정 플러그인 지정 (과거사용 5.7 이하)
CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';

 

-- 권한

-- 모든 권한 + 모든 DB 접근 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'username'@'host';

-- 특정 DB 전체 권한 
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';

-- 특정 테이블 전체 권한
GRANT ALL PRIVILEGES ON database_name.table_name TO 'username'@'host';

-- 특정 테이블 SELECT 권한
GRANT SELECT ON database_name.table_name TO 'username'@'host';

-- 특정 테이블 SELECT, INSERT 권한
GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'host';

-- 특정 프로시저 실행 권한
GRANT EXECUTE ON PROCEDURE database_name.procedure_name TO 'username'@'host';


-- 특정 유저 권한 확인
SHOW GRANTS FOR 'username'@'host';

-- 특정 권한 취소
REVOKE privilege_type ON database_name.table_name FROM 'username'@'host';
REVOKE SELECT ON mydatabase.mytable FROM 'testuser'@'localhost';


-- 마지막에는 까먹지 말고 꼭!
FLUSH PRIVILEGES;

 

-- 유저 조회

-- USER와 HOST를 조회
SELECT host, user FROM mysql.user;
반응형
반응형

안녕하세요.

JohnComputer입니다.

 

이따금씩 개발 테스트를 진행하다 보면 임의적인 데이터를 넣고 테스트를 진행해야 할때가 많은데요.

그렇다고 또 데이터를 만들기 위해서 까다로운 RDB의 요구 조건을 다 들어주면서 넣다 보면 참 힘듭니다.

또 언제 전부 INSERT VALUES... 하고 있기도 힘들고요.

그렇게 해서 찾게 된 이번 오픈소스! FAKER 사용 방법을 같이 정리해서 올려드리려고 합니다.

 

1. 기본 데이터베이스 만들기

CREATE DATABASE test

CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
City varchar(255),
RegistDate DateTime
);

- 처음 부터 하시는 분들도 계실 수 있으니 간단한 예제도 넣어서 같이 설명 드리겠습니다.

 

기본 데이터베이스를 만들게 되면 위 이미지와 같이 Table이 생성됩니다.

 

2. Python

import pymysql.cursors
from faker import Faker

MYSQL_ENDPOINT = "127.0.0.1"
MYSQL_PORT = 3306
DB_ID = "ID"
DB_PW = "PASSWD"


# DB rows LIST 생성
sql_rows = []

mysqldb = pymysql.connect( host=MYSQL_ENDPOINT, user=DB_ID, password=DB_PW, database="test", port=MYSQL_PORT, charset='utf8mb4')
_Connectiondb = mysqldb.cursor()

# Faker.seed(Number) 데이터 넘버 FIX
fake = Faker()



for _ in range(2000):
    sql_row = '({},'"'{}'"','"'{}'"','"'{}'"','"'{}'"')'.format(fake.random_number(), fake.last_name(), fake.first_name(), fake.city(), fake.date_time())
    sql_rows.append(sql_row)
sql = "INSERT INTO Persons(PersonId, LastName, Firstname, City, RegistDate) VALUES " + ','.join(sql_rows)
#할당 해제
sql_rows = []
_Connectiondb.execute(sql)
mysqldb.commit()

 

위 코드는 테스트 데이터를 보여드리기 위한 Python입니다.'

아래 주의 사항과 함께 사용방법 적어둘 테니 잘 이용해보시기 바랍니다.

1. 기본설치
 
import pymysql.cursors
from faker import Faker

기본 세팅으로 pymysql, Faker를 설치해주셔야합니다.

pip install pymysql, Faker 등을 진행해주세요.

 

2. 사용형식

문자 데이터의 경우 '"'{}'"'
날짜 데이터의 경우 '"'{}'"'
숫자 데이터의 경우 {}

 

3. 사용되는 함수

fake.random_number() : 랜덤넘버
fake.name() : 이름 출력 / fake.first_name(), fake.last_name()
fake.email() : 이메일
fake.city() : 도시
fake.date_time() : Datetime
fake.address() : 주소 (4759 William Haven Apt. 194 West Corey, CA 90152)
fake.country() : 국가 (Nigeria)
fake.random_digit() : 0~9 랜덤 Number
fake.random_number() : 자릿수와 상관 없는 Number

기타 함수

https://faker.readthedocs.io/en/master/providers/baseprovider.html

 

faker.providers — Faker 17.6.0 documentation

© Copyright 2014, Daniele Faraglia Revision 5de6bf3f.

faker.readthedocs.io

 

반응형
반응형

마스터 슬레이브 구성 중 위와 같은 오류가 발생하였고 해당 오류의 경우 

slave failed to initialize relay log info structure from the repository

슬레이브 실행 중 릴레이 로그 정보를 초기화 하지 못 했을때 발생하는 오류이다.

 

기존에 만들었던 Slave가 정상 종료가 안되었거나

Config나 Log에서 꼬일 수 도 있고 여러 이유가 있을 수 있다.

 

특히, Container 환경에서 처럼 계속 썻다 지웠다 실험하는 경우 해당 오류를 만날 수 있고 이런경우 해결 방법은 매우 간단하다.

 

mysql > STOP SLAVE;

mysql > RESET SLAVE;

mysql > START SLAVE;

 

끄고 -> 초기화 하고 -> 다시 실행해주면 된다.

반응형
반응형

사실 오류 해결이라 하기에도 애매하지만 이글을 검색 해본 분들은

필자 처럼 오타에 주의 해야한다 ㅠㅠ

 

갑자기 이런 메세지를 띄우며 쿼리가 안된다..

아! root ???????

오타입니다.

 

-uroot 로 바꿔주세요

반응형
반응형

Pymysql을 이용해서 작업을 해야하는데

기존에 인터넷에 뿌려져 있는 Python2 버전으로 만약에 실행한 경우 예상치도 못한 오류가 발생할 수 있다.

 

예를들어 아래와 같은 positional argument 오류가 발생할 수 있습니다.

1
takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were given
cs

이런 경우

Python3와 다르기 때문에 아래와 같이 수정해주시면 됩니다.

 

 

1
2
3
4
# import 수정 필요
import pymysql.curosors
# connection 속성값을 모두 명시해야함.
dbconnect = pymysql.connect( host =  호스트값, user = DBID, password = 패스워드, database = "mysql", charset = "utf8mb4" )
cs

 

반응형
반응형

1. 데이터 조작 언어 ( Data manipulation language)


데이터 조작언어에 대해서 알아보겠습니다.


데이터 조작언어에 종류

1. SELECT (조회)

2. INSERT (삽입)

3. DELETE (삭제)

4. UPDATE(수정)


{글} <- 여기서 중괄호{}는 생략 해주세요.

*** DBMS 이용시 칼럼에 ''작은따옴표를 묶어 주셔야 합니다. DBMS마다 상이함. ***

*** 문자데이터는 ''작은따옴표로 묶어 줘야 합니다. ***




1. SELECT 원하는 데이터를 조회할 때 사용합니다.


1-1.모든 칼럼 모든 튜플 조회 : SELECT * FROM {테이블명}





1-2. 원하는 칼럼 모든 튜플 조회 : SELECT {칼럼명}, {칼럼명2}, {칼럼명3} FROM {테이블명} 





1-3. 원하는 칼럼 원하는 튜플 조회 : SELECT {칼럼명}, {칼럼명2}, {칼럼명3} FROM {테이블명} WHERE {조건칼럼명} = {조건값}




2. INSERT 원하는 데이터를 테이블에 넣을때 사용합니다.



INSERT INTO {테이블명} ( {칼럼명1}, {칼럼명2}, {칼럼명3} ) VALUES ( '값1', '값2', '값3') 

** 칼럼에 DEFAULT 값이 설정 되어 있거나 NULL 허용이 되어 있다면 빈칸으로 두어도 됩니다.   ex ) '밥',3000, ,3명 **

** 칼럼명 부분을 생략하면 모든 데이터 입력을 하게 됩니다. ex) INSERT INTO {테이블명} VALUES ( '값1', '값2', '값3') 






3. DELETE 데이터를 삭제할때 사용합니다.


DELETE FROM {테이블명} WHERE {조건칼럼명} = {조건값}

** 앞과 마찬가지로 찾는값이 문자이면 '' 작은따옴표로 묶어주세요.




4. UPDATE 데이터를 수정할 때 사용합니다.

UPDATE {테이블명} SET WHERE {조건칼럼명} = {조건값}






반응형