Postgresql 과 MySQL 비교
2023. 8. 10. 21:46
데이터 엔지니어링/Database
stackoverflow developer Survey 2023 에서 개발자들 사용하는 데이터베이스에 대해서 투표한 결과를 보게 되었다. https://survey.stackoverflow.co/2023/ Stack Overflow Developer Survey 2023 In May 2023 over 90,000 developers responded to our annual survey about how they learn and level up, which tools they're using, and which ones they want. survey.stackoverflow.co 투표 결과를 확인해보니 대략 7만 5천명의 개발자분들이 투표해주셨고 그 결과는 다음과 같았다. 전체 결과를 확인해보니 Po..
Mysql OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction') 에러 발생
2023. 7. 6. 11:05
데이터 엔지니어링/Database
Mysql 에서 Insert 하는 과정에서 다음과 같이 에러가 발생했다. OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction') 메시지를 보면 알 수 있듯이 트렌젝션의 수행시간이 초과되면 Lock 이 걸리는 것을 알 수 있다. 만약 트랜젝션의 수행시간이 길다면 나누어서 실행하는 게 좋을 것 같다. 해결 방법은 다음과 같다. mysql root 계정으로 접속한다. mysql -uroot -p 다음과 같이 timeout 값을 확인해볼 수 있다. select @@innodb_lock_wait_timeout; 확인해보면 아래와 같이 innodb_lock_wait_timeout 의 값이 50초로 되어있는 것을 확인할 수 ..
Mysql - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
2023. 3. 8. 12:44
데이터 엔지니어링/Database
mysql 을 유저와 패스워드 없이 접속할 때 다음과 같은 에러가 발생한다. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 하지만 다음과 같이 유저와 패스워드를 입력해서 접속하면 정상적으로 접속되는 것을 확인할 수 있다. 물론 접속할 수 있는 방법은 있다. 패스워드를 제거해주면 된다. 다만, 실제 서비스에서는 보안상 위험하기 때문에 유저를 별도로 생성해 유저와 패스워드를 입력해서 접속하는 것을 권장한다. 패스워드를 변경하는 방법은 다음과 같이 mysql document 에서 확인할 수 있다. https://dev.mysql.com/doc/refman/5.7/en/assigning-passwords.htm..
Docker Mysql 5.7 설치하기
2023. 3. 8. 12:27
DevOps/Docker
Docker 에서 mysql 을 설치하는 과정을 정리해봤다. 먼저 도커 에서 mysql 이미지를 확인해본다. docker search mysql 사진과 같이 mysql 의 이미지를 확인할 수 있다. 나는 mysql 5.7 버전을 사용할 예정이라 mysql 5.7 버전의 이미지를 가져왔다.(pull) 버전은 해당 이미지의 태그를 나타내는 콜론(:) 을 사용해 버전을 입력할 수 있다. docker pull mysql:5.7 그리고 설치된 이미지를 확인할 수 있다. 이제 mysql 이미지를 통해 도커 컨테이너를 실행해보자. 아래와 같이 실행할 경우 컨테이너 실행이 제대로 되지 않았다. docker run -d --name mysql-5.7 -p 3306:3306 mysql:5.7 그래서 로그를 확인해보니 다음..
Docker mysql 5.7 버전 설치 (MacbookPro M1)
2022. 8. 30. 20:29
데이터 엔지니어링/Database
m1 맥북에 mysql 5.7 버전을 설치하려고 했는데 왜 안돼... 지원을 안 해주나 보다... 인텔이 아니라서 그런가.. mysql 8 버전은 설치해서 잘 작동하는 것은 확인했다. 그래서 결국 docker 에 mysql 5.7 버전 올려서 사용하기로 했다. 도커에서 mysql 이미지 버전 확인 jhnam@jhnamui-MacBookPro v2 % docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 13093 [OK] mariadb MariaDB Server is a high performing open sou… 5005 [OK] phpmyadmin p..
MacOS Mysql - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
2022. 8. 7. 17:33
데이터 엔지니어링/Database
MacOS 에서 brew 를 통해 mysql 을 설치하고나서 아래와 같은 에러가 나면서 접속이 되지 않았다. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) brew 서비스를 확인해보니 status 가 none 으로 되어있었다. $ brew services list Name Status User File mysql none 따라서 mysql 서비스를 시작해주었다. brew services start mysql mysql 서비스 시작 $ brew services list Name Status User File mysql started jaynam ~/Library/LaunchAgents/h..
[Mysql] WHERE 절에서 특정 문자 포함해서 검색하기
2019. 9. 8. 13:26
데이터 엔지니어링/SQL
WHERE 절에서 LIKE 를 사용해서 특정 문자가 들어간 컬럼의 값을 검색할 수 있다. 앞, 뒤에 '%' 를 붙여주게 되면 앞, 뒤에 어떤 문자가 오든 상관없이 특정 문자가 들어간 값을 검색하게 된다. SELECT * FROM [tablename] WHERE column like "%[특정 문자]%" 여기서 주의해야할 부분은 공백을 넣어줄 때 조심해야한다는 점이다. 공백을 넣어주게 되면 공백까지 검색하기 때문에 원하는 검색을 할 수 없다. 따라서 trim 을 사용해서 공백을 제거해준 후에 검색을 한다면 원하는 값을 얻을 수 있다. 예를 들어, 2019년 09월의 내용을 확인하고 싶다면 SELECT * FROM TABLE WHERE TIME LIKE '201909%' 와 같이 날짜에서 2019년 09월에..