Bootcamp

[MySQL] 네트워크, mysql

K_Hyul 2023. 12. 28. 10:19
728x90

오늘은 mysql부터 시작을 했다.

우분투에 들어가 확인

sudo service mysql status

# 나올 때 q

 

그 후에 net-tools를 설치

sudo apt install net-tools

net-tools 는 Linux환경에서 네트워크 관련 유틸리티이다. 

네트워크 구성 및 모니터링을 위한 다양한 도구가 있다.

예) ifconfig와 같이 네트워크 인터페이스 정보를 표시하는데 사용된다.

 

# ip 확인하기
ip addr
ifconfig

 

ifconfig 사용 예)

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
	inet 172.120.151.1  netmask 255.255.240.0  broadcast 172.120.163.255
    inet6 fe80::215:5dff:feec:faa8  prefixlen 64  scopeid 0x20<link> 
    ether 00:15:5d:ec:fa:a8  txqueuelen 1000  (Ethernet)   
    RX packets 449  bytes 573354 (573.3 KB) 
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 292  bytes 64648 (64.6 KB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

 

 

eth0는 네트워크 인터페이스의 이름으로 보통 이더넷 인터페이스를 나타냄

flags=4163....,MULTICAST>는 플래그들은 인터페이스 상태를 나타냄

UP : 인터페이스가 활성

BROADCAST : 패킷을 수신할 수 있다.

RUNNING : 인터페이스가 작동 중이다.

MULTICAST : 멀티캐스트 패킷을 수신할 수 있다.

mtu 1500 : 한번에 전송될 수 있는 최대 데이터 크기이다.

 

inet 172.120.163.255 : IPv4 주소 정보이다.

inet  : IPv4 주소가 172.120.151.1임을 나타냄

netmask : 서브넷 마스크가 255.255.240.0임을 나타냄

broadcast : 브로드캐스트 주소가 172.120.163.255임을 나타냄

 

inet6 fe80::255:5dff:feec:faa8 prefixlen 64 scopeid0x20<link> : IPv6 주소 정보

inet6 : IPv6 주소가 fe80::255:5dff:feec:faa8 임을 나타냄

prefixlen : IPv6 주소의 접두사 길이가 64비트임을 나타냄

scopeid : 링크 로컬 주소임을 나타냄

 

ether 00:15:5d:ec:fa:a8 : 이더넷 인터페이스의 MAC 주소이다.

txqueuelen 1000 (Ethernet) : 전송 큐의 길이 및 인터페이스의 유형이 Ethernet 이다.

 

RX packets 449 bytes 573354 (573.3KB): 수신한 패킷 및 바이트 수

RX errors 0 dropped 0 overruns 0 frame 0 : 수신 중 발생한 오류 및 드랍 수

TX packets 292 bytes 64648 (64.6 KB): 전송한 패킷 및 바이트 수

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 : 전송 중에 발생한 오류 및 드랍 수, 캐리어 오류, 충돌 수등 이다.

 

 

 

ifconfig 에서 나온 정보는 주로 네트워크 인터페이스의 현재 상태와 호라동을 확인하기 위해 사용함

IP주소, MAC주소, 패킷 수 등을 확인함

 

브로드캐스트 주소를 사용하면 한 네트워크에서 모든 장치에게 메세지를 보낼 수 있다

하지만 보안상의 이유로 최근에는 지원하지 않는 네트워크도 많다.

IPv6에는 브로드캐스트 개념이 없고 다양한 멀티캐스트 주소가 사용됨

 

 

 

 

# 서버에서 mysql 콘솔 접속하기

mysql -uroot -p
(나는 현재 비밀번호 1111)

 

 

정보 알아내기

cd /etc/mysql
ls /

# cpu 확인
cat /proc/cpuinfo 

cat /etc/issue


# mariadb 설정 폴더 
cd /etc/mysql

 

 

dba

메모리 설정 가능

sudo vim mariadb.cnf

 

 

# Vim 명령어

G : 제일 밑으로

gg : 처음으로

/bind : bind 찾기

i버튼 -> insert 진입 

esc -> 비주얼 모드 -> : -> 명령어 모드 -> wq

 

 

 

 

# mysql 데몬 재시작 
sudo service mysql restart
sudo service mysql status 

mysql -uroot -p 

CREATE USER 'encore'@'%' IDENTIFIED BY '1q2w3e!';
GRANT ALL PRIVILEGES ON *.* TO 'encore'@'%';

 

 

스타벅스 예제를 계속 사용

import pandas as pd
import pickle

with open("./starbucks.pkl", "rb") as f:
    star_df = pickle.load(f)
    
import pymysql
con = pymysql.connect(host="172.20.51.1", user="encore", password="1q2w3e!", db='mydata')
cur = con.cursor()
cur.execute("show tables")
pd.set_option('display.max_columns', None)
col = ['s_code', 's_name', 'tel', 'fax', 'sido_code', 'sido_name', 'gugun_code',
 'gugun_name', 'addr', 'defaultimage', 'open_dt', 'doro_address', 'lat', 'lot'] 
star_df = star_df[col].copy()



sql = """create table starbucks (
    s_code int(10) not null COMMENT '',
    s_name varchar(30) not null COMMENT '',
    tel varchar(30) not null COMMENT '',
    fax varchar(30) not null COMMENT '',
    sido_code int not null COMMENT '',
    sido_name varchar(10) not null COMMENT '',
    gugun_code varchar(10) not null COMMENT '',
    gugun_name varchar(10) COMMENT '',
    addr varchar(100) not null COMMENT '',
    defaultimage varchar(50) not null COMMENT '',
    open_dt varchar(10) not null COMMENT '',
    doro_address varchar(100) not null COMMENT '',
    lat float not null COMMENT '',
    lot float not null COMMENT '',
    PRIMARY KEY(s_code)
);"""
cur.execute(sql)



cur.execute("ALTER TABLE mydata.starbucks MODIFY COLUMN defaultimage varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;")
sql_insert = "INSERT INTO starbucks VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
star_df.loc[star_df['gugun_name'].isnull(), 'gugun_name'] ="None"

for idx, row in star_df.iterrows():
    try:
        cur.execute(sql_insert , row.tolist())
    except Exception as e:
        print(e) 
        
con.commit()
cur.execute("select * from starbucks")
728x90

'Bootcamp' 카테고리의 다른 글

[Kubernetes] 쿠버네티스 마스터 설정하기  (1) 2024.02.01
[Spark] spark 다루기  (0) 2024.01.18
[Crawling] - 간단한 크롤링  (1) 2023.12.27
[Linux] Linux & Jupyter Notebook  (1) 2023.12.27
[AI Vision] Mini Project  (0) 2023.11.17