Open jjy0918 opened 2 years ago
특정 마이너 버전에서만
가능한 경우가 존재한다는 것이다.
my.cnf
라는 이름을 사용한다.my.ini
라는 이름을 사용한다.mysql --help
을 입력하면 알 수 있다.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
...
[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
SHOW VARIABLES;
또는 SHOW GLOBAL VARIABLES;
명령어를 통해 확인할 수 있다.글로벌 변수
와 세션 변수
로 나뉜다.글로벌 변수
란 MySQL 서버 인스턴스 전체적으로 영향을 미치는 시스템 변수를 의미한다.세션 변수
란 MySQL 클라이언트가 MySQL 서버에 접속할 때 기본적으로 부여하는 옵션의 기본값을 제어하는 데 사용된다.
Both
이다.
동적 변수
라고 한다.
SET
명령어를 이용하여 변경할 수 있는 시스템 변수 값을 의미한다.MySQL 8.0
부터는 SET PERSIST
명령어를 이용하면 변경과 동시에 my.cnf가 아닌 별도 mysqd-auto.cnf
에 기록된다.정적 변수
라고 한다.
SET PERSIST
명령을 이용하여 저장된 mysqld-auto.cnf
파일의 옵션은 서버 시작 시 자동으로 my.cnf
와 함께 참조해서 적용된다.SET PERSIST
명령의 경우 세션 변수에는 적용되지 않고, 자동으로 GLOBAL 변수로 인식하고 변경한다.SET PERSIST_ONLY
옵션을 이용하면, 현재 서버애는 적용하지 않고 mysqld-auto.cnf
파일에만 기록한다.
mysqld-auto.cnf
파일은 JSON 형태로 누가 언제 어떠한 시스템 변수를 변경했는지 함께 기록된다.mysqld-auto.cnf
파일의 내용을 삭제
하기 위하여 RESET PERSIST
명령을 제공한다.
RESET PERSIST max_connections;
RESET PERSIST IF EXISTS max_connections;
RESET PERSIST;
=> 모든 내용 삭제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
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에 대한 서브 쿼리를 만든다.
sql_log_bin
세션 변수는 항상 default value가 ON
. 세션마다 다른 값으로 변경할 수 있음.SET PERSIST는 글로벌 시스템 변수 전용이다. (재시작하면 초기화되버리는 세션 변수는 의미가 없기 때문에)
https://blog.naver.com/PostView.naver?blogId=sory1008&logNo=221980241351&categoryNo=79&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView MySQL 인스턴스 내의 데이터베이스 개체에 대한 정보. MySQL 8.0부터 트랜잭션이 지원되는 InnoDB 테이블로 저장된다. test를 제외한 4개 (information_schema, performance_schema, mysql, sys)
2.2 서버 연결
mysql -uroot -p -host=localhost --socket=/tmp/mysql.sock
localhost
를 이용하면, MySQL은 항상 소켓 모드로 접속한다.mysql -uroot -p -host=127.0.0.1 -port=3306
mysql -uroot -p