NW-book-club / Real-MySQL-8.0

Real MySQL 8.0
0 stars 0 forks source link

2장. 설치와 설정 #1

Open jjy0918 opened 2 years ago

jjy0918 commented 2 years ago

2.2 서버 연결

jjy0918 commented 2 years ago

2.3 서버 업그레이드

2.3.1 인플레이스 업그레이드 제약 사항

2.3.2 MySQL 8.0 업그레이드 시 고려 사항

2.3.3 MySQL 8.0 업그레이드

업그레이 절차(8.0.15 이하)

  1. MySQL 셧다운
  2. MySQL 5.7 프로그램 삭제
  3. MySQL 8.0 프로그램 설치
  4. MySQL 8.0 서버(mysqld) 시작 => 데이터 딕셔너리 업그레이드
  5. mysql_upgrade 프로그램 실행 => 서버 업그레이드

업그레이 절차(8.0.16 이상)

  1. MySQL 셧다운
  2. MySQL 5.7 프로그램 삭제
  3. MySQL 8.0 프로그램 설치
  4. MySQL 8.0 서버(mysqld) 시작 => 데이터 딕셔너리 업그레이드 & 서버 업그레이드
jjy0918 commented 2 years ago

2.4 서버 설정

shell> mysql --help
...
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /opt/homebrew/etc/my.cnf ~/.my.cnf
...

2.4.1 설정 파일의 구성

[mysqld]
socket = /usr/local/mysql/temp/mysql.sock
port = 3306

[mysql]
default-character-set = utf8mb4
socket = /usr/local/mysql/tmp/mysql.sock
port = 3304

[mysqldump]
ddefault-character-set = utf8mb4
socket = /usr/local/mysql/tmp/mysql.sock
port = 3305

2.4.2 MySQL 시스템 변수의 특징

2.4.3 글로벌 변수와 세션 변수

2.4.4 정적 변수와 동적 변수

2.4.5 SET PERSIST

KKambi commented 2 years ago

5.x 버전에서 사용하던 GROUP BY

https://chamch-dev.tistory.com/3 https://info-lab.tistory.com/274

SELECT name, address FROM tb_test GROUP BY name;

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'drscan_dev.tb_test.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
SELECT name, ANY_VALUE(address) AS address FROM tb_test GROUP BY name;

SELECT name, address FROM tb_test
WHERE id in (SELECT max(id) FROM tb_test GROUP BY name)

위와 같이 ANY_VALUE() 함수를 사용하거나, non-aggregated column에 대한 서브 쿼리를 만든다.

시스템 변수의 범위

신기한점

SET PERSIST는 글로벌 시스템 변수 전용이다. (재시작하면 초기화되버리는 세션 변수는 의미가 없기 때문에)

MySQL 데이터 딕셔너리

https://blog.naver.com/PostView.naver?blogId=sory1008&logNo=221980241351&categoryNo=79&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView MySQL 인스턴스 내의 데이터베이스 개체에 대한 정보. MySQL 8.0부터 트랜잭션이 지원되는 InnoDB 테이블로 저장된다. 스크린샷 2022-10-30 오후 6 43 05 test를 제외한 4개 (information_schema, performance_schema, mysql, sys)