본문 바로가기
728x90

Dev/MySQL18

[MySQL] AWS EC2에 특정 버전 MySQL (5.7.12) 설치하기 환경 EC2 : Amazon Linux 2023 MySQL version : MySQL Community 5.7.12 MySQL Yum repository 다운로드 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm MySQL Yum repository 설치 sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm 특정 버전(5.7.12)을 설치할 예정이기 때문에 해당 버전이 어떤 패키지로 제공되는지 확인한다. sudo yum provides mysql-community-server mysql-community-server-5.7.12-1.el7.x86_64 으로.. 2023. 4. 19.
[MySQL] AWS EC2에 특정 버전 MySQL (8.0.32) 설치하기 환경 EC2 : Amazon Linux 2 MySQL version : MySQL Community 8.0.32 epel 설치 amazon-linux-extras는 Amazon Linux 2023에서 지원되지 않는다. Amazon Linux 2를 사용하거나 다른 방법으로 MySQL을 설치해야한다. amazon-linux-extras를 이용하여 epel을 설치한다. sudo yum install amazon-linux-extras -y sudo amazon-linux-extras install epel -y MySQL repository 설치 sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm -y M.. 2023. 4. 19.
[MySQL] Waiting for table metadata lock Problem DROP TABLE 쿼리를 실행했을 때 실행이 정상적으로 되지 않는 문제가 있었다. SHOW FULL PROCESSLIST 로 확인해보니 해당 프로세스의 state가 Waiting for table metadata lock 인 채 계속해서 대기하는 것을 확인할 수 있었다. Solution 1. information_schema.innodb_trx 테이블을 확인한다. SELECT * FROM information_schema.innodb_trx ; 다음과 같은 결과를 확인할 수 있다. [root@localhost:mysql.sock] (mysql) 09:47> SELECT * FROM information_schema.innodb_trx\G *************************** .. 2022. 10. 17.
[MySQL] ERROR 2006 (HY000) : MySQL server has gone away Problem 백업 받아둔 파일을 import 하는데 오류가 발생했다. ERROR 2006 (HY000) at line 17377: MySQL server has gone away 확인해보니 서버가 처리할 수 있는 최대 크기는 32mb 였는데, 일부 쿼리의 크기가 32mb가 넘어갔던 것.. 한번 해당 오류가 발생하면, 연결이 아예 끊겨 import 하던 세션은 사용할 수가 없다. 문제되는 쿼리를 제외하고 import를 다시 시작하거나, 한번에 더 큰 크기의 쿼리를 처리할 수 있도록 설정을 변경해준다. 이어서 설정을 변경하는 방법을 설명한다. Solution 먼저, 서버의 기존 설정을 확인한다. SHOW VARIABLES LIKE 'max_allowed_packet' +--------------------.. 2022. 10. 7.
[MySQL] ERROR 1018 (HY000): Can't read dir of '.' (errno: 13) Problem 기존에 기동되던 mysql 의 디렉토리를 살펴보다가 디렉토리의 소유권이 다음과 같이 설정되어 있는 것을 발견했다. drwxr-xr-x. 15 root nobody 254 9월 22 14:51 mysql 이때는 nobody가 뭔지 몰랐음.. 이상하게 설정되어 있다고 생각해 다음과 같이 root가 소유권을 가지도록 변경했었다. 원래는 owner:group을 모두 mysql으로 설정하지만 owner가 root 이니 root 에 맞춰주었다. drwxr-xr-x. 15 root root 254 9월 22 14:51 mysql 이후에 mysql에서 information_schema.schemata 테이블을 조회하려고 하니 다음과 같은 오류가 났다. ERROR 1018 (HY000): Can't rea.. 2022. 9. 22.
[Database] Lock, Block, DeadLock Lock Lock은 프로세스가 데이터 조각에 액세스할 때 획득된다. 다른 프로세스가 이 데이터 조각을 동시에 필요로 할 가능성이 있는데, 데이터 조각을 잠그면 이러한 상황 발생시 해당 데이터에 대해 조치를 취할 수 있다. 예를 들어 데이터를 읽는 경우 일반적으로 최신 데이터를 읽도록 한다. 데이터를 업데이트하는 경우 다른 프로세스가 동시에 업데이트하지 않도록 해야 한다. Block Block (혹은 blocking lock)은 두 프로세스가 동일한 데이터 조각에 동시에 액세스해야 하는 상황에서, 한 프로세스는 데이터를 잠그고 다른 프로세스는 다른 프로세스가 완료되어 잠금을 해제할 때까지 기다려야 할 때 발생한다. 첫 번째 프로세스가 완료되는 즉시 차단된 프로세스가 작업을 재개한다. 차단 체인(blocki.. 2022. 9. 15.
728x90