공부
MYSQL 우분투 설치 및 명령어
코딩이좋아요
2023. 3. 13. 13:54
MYSQL
[MYSQL 설치]
sudo apt-get update
sudo apt-get install mysql-server
sudo apt-get install mysql-client
mysql --version
[실행]
sudo systemctl start mysql
[서버 껏다 켜질때 재시작]
sudo systemctl enable mysql
[재시작]
sudo service mysql restart
[Mysql 보호] -선택
sudo mysql_secure_installation
1. **secure enough. Would you like to setup VALIDATE PASSWORD plugin?**
mysql에서 사용될 패스워드 묻는 질문 데이터베이스 최고 관리자 권한 패스워드
2. **Remove anonymous users?** 익명의 사용자를 제거할 껀지?
3. **Disallow root login remotely?** 외부 로그인을 허용하지 않을 건지?
4. **Remove test database and access to it?** test 데이터베이스를 삭제할지?
5. **Reload privilege tables now?** privileges table을 다시 로드할지?
-----------------------
localhost : 서버 접근
% : 외부 접속
[MySQL 외부접속 허용]
vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0 으로 변경
[한글사용 mysqld.cnf 파일안 하단에 다 붙혀넣어주자[]도 똑같이 붙혀주기]
[mysql]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
init_connect=’SET NAMES utf8’
[재시작]
sudo service mysql restart
[접속]
sudo mysql -u root -p
mysql -u root -p
[유저 생성 후 외부접근 허용]
mysql> create user '사용할이름'@'%' identified by '비밀번호';
mysql> grant all privileges on *.* to 사용할이름@'%';
mysql> FLUSH PRIVILEGES;
[엑세스 권한 가진 새 관리 사용자 생성] -선택
mysql > GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';
mysql > FLUSH PRIVILEGES;
[접속 안되거나 디나이 뜰때]
[정보확인 해보고]
mysql > SELECT User, Host, authentication_string FROM mysql.user;
[기본 설정으로 돌릴 때 사용]
mysql > ALTER USER '계정'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
[비밀번호로 변경/접속이 가능하다.]
mysql > set PASSWORD FOR '계정'@'localhost' = PASSWORD('비밀번호');
mysql > FLUSH PRIVILEGES;
——————————————————————————————————————————————————
[back-end 코드 클론]
Git clone 사용
안될시 git install
.env.development 생성 및 수정 : 경로 -> / git clone 폴더 / env /
——————————————————————————————————————————————————
[pm2 설치]
npm install pm2 -g
[pm2 버전 확인]
pm2 -v
[실행하면서 감시해서 자동으로 다시 켜준다 안되면 관리자모드로 sudo]
pm2 start app.js --watch
or
sudo pm2 start app.js --watch
[실행중인 파일 보기]
pm2 list
[실행중인거 다끄기]
pm2 kill
[실행중인 것 중에 원하는거만 끄기]
pm2 delete 0
[프로세스 상태 확인]
pm2 status
[메모리/cpu 사용량 확인한다]
pm2 monit
[실행중인 PM2 Daemon의 log를 확인하는 명령어]
pm2 log
pm2 설정 관련 변경 필요시 변경
MYSQL 명령어
SHOW - 데이터베이스, 테이블 조회
CREATE - 데이터베이스, 테이블을 생성
SELECT - 데이터를 조회
INSERT - 레코드(데이터) 삽입
UPDATE - 데이터 업데이트
DELETE - 레코드 삭제
DROP - 데이터베이스,테이블 삭제
ALTER - 각종 정보 수정
[로그인 및 로그아웃]
mysql -u 유저명 -p
or
sudo mysql -u 유저명 -p
quit exit \q - 로그아웃
[데이터베이스 생성(utf8_general_ci세팅 까지)]
CREATE DATABASE 데이터베이스명 CHARACTER SET utf8 COLLATE utf8_general_ci;
[삭제]
DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명;
[데이데베이스 조회]
SHOW DATABASES;
DESC 테이블명; - 구조 조회
[데이터베이스 사용]
USE 데이터베이스명;
[테이블 생성]
CREATE TABLE [table명] (
[column1] [datatype] [option],
[column2] [datatype] [option],
[column3] [datatype] [option],
...
PRIMARY KEY ([PK로 지정할 column명]),
FOREIGN KEY ([FK로 지정할 column명]) REFERENCES [참조할 table명] ([참조할 PK명])
);
[테이블 컬럼 추가]
ALTER TABLE [table명] ADD [추가할 column명] [type] [필요한 option];
ALTER TABLE [table명] MODIFY [column명] [변경할 type]; - 타입 변경
[데이터추가]
INSERT INTO [table명] ([column명]) VALUES ([값]);
(INSERT INTO categories (name) VALUES ('dd');)
UPDATE [table명] SET [column명]=[수정할 값] WHERE [조건식]; -수정
(UPDATE drinks SET name="dd" WHERE id = 3;)
foreign key 추가
ALTER TABLE [table명] ADD FOREIGN KEY ([FK로 설정할 column명]) REFERENCES [참조할 table명(참조할 PK명)];
(ALTER TABLE 테이블명 ADD FOREIGN KEY (drink_id) REFERENCES drinks(id);)
[데이터 정보 보기]
SELECT * FROM 테이블명; - 조건없이
SELECT * FROM 테이블명/G; - 직관적으로 볼 수 있음(목록형태)
SELECT * FROM [테이블명] WHERE [column명][연산자][값]; -조건 사용
SELECT [column명] FROM [table명]; -지정 컬럼 조회