본문 바로가기

MySQL15

[라라벨 Laravel][Mysql] String data, right truncated: 1406 Data too long for column 'content' at row 1 개요 'Query Exception SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'content' at row 1' 에러가 자꾸 발생되어서 확인하게 되었습니다. 본문 Laravel 5.4.* 버전 사용중이고, PHP 7.1.* 사용중이고, Mysql 은 5.5.* 버전 사용중입니다. 문제가 뭘까? 고민해봤는데 이 경우에는 text 타입이 문제였습니다. 길이가 긴 문자열을 넘기게 되었는데, 저장할 수 있는 크기를 넘어섰기 때문에 발생하였습니다. Laravel 의 기본 샘플을 따라서 테스트 하는 중에 생성했던 테이블의 컬럼 중에 text 타입이 문제가 있었던 것으로 보입니다. 제 경우에는 posts 테이블의 cont.. 2017. 7. 29.
[PHP][mysql] inet_aton('::1') 에러 잘 되던게 갑자기 에러가 났다. inet_aton('::1') 라는 식의 로그 가 찍혀 있었다. 생각을 해보면, inet_aton 이라는 것은 mysql 에서는 IPv4 주소를 integer unsigned 로 바꿔주는 함수 로 기억한다. 문제는 저 안에 들어간 변수가 ::1 이라는 것이라는 점이다. ::1 이라는 아이피는 IPv6 에서 로컬을 뜻하는 주소 이다. IPv4 에서는 127.0.0.1 이었던 값이 IPv6 에서는 ::1 이라는 값이 된 셈이다. 해결책은 두 가지로 볼 수 있겠는데,'IPv6 이 지원되도록 소스를 변경' 하는 방법 과 '아파치 설정을 변경' 하는 방법이 있다. 개인적으로는 검색해서 찾아본 결과, httpd.conf 파일을 열어서 보면, Listen 80 이라고 되어 있는 부분이.. 2017. 2. 11.
[Mysql workbench 워크벤치] 1022 - Can't write; duplicate key in table 개요 1022 - Can't write; duplicate key in table Mysql workbench 를 사용해서 ERD 작업하는 중인데, 이런 에러가 종종 뜬다. 상황 설명ERD 작업을 하면서, 테이블을 생성했던 데이터베이스 에 변경된 ERD 를 다시 Forward Engineering 작업을 할 경우에 에러가 발생함. 결론제약조건이 말썽이었다. 제약조건 의 명칭을 바꿔주고 다시 forward 해주니 잘 올라간다. Mysql workbench 에서 제약 조건 이름 을 바꿔주려면, 조인이 되어지는 테이블 을 선택해서 [foreign keys] 항목 을 보면 확인 할 수 있는데, 이름도 바꿀 수 있다. * 주의 : 릴레이션 을 직접 선택해서 바꾸는 명칭은 caption 인데, 이것은 제약조건 의 .. 2017. 1. 24.
[PHP, MYSQL] PHP + MYSQL 연결 테스트 예제 (pdo 방식) (업데이트 2017-11-24) 준비 php.ini 에서 php_pdo_mysql.dll 이 주석해제 되어 있어야 합니다. extension=php_pdo_mysql.dll 샘플 코드 /** * pdo 클래스 방식 * 샘플예제 입니다. 대충 어떻게 동작되는지 공부하시기에 좋게 정리해놓았습니다. * 각각의 값을 변경하고 연결테스트 하기에도 좋습니다. */ //0. 설정 $mysql_hostname = 'localhost'; $mysql_username = 'username'; $mysql_password = 'password'; $mysql_database = 'database_name'; $mysql_port = '3306'; $mysql_charset = 'utf8'; //1. DB 연결 $dsn = 'mysql:host='.$mys.. 2016. 2. 5.
[PHP, MYSQL] PHP + MYSQL 연결 테스트 예제 (mysqli 클래스 방식) (업데이트 2017-11-24) 준비 php.ini 에서 php_mysqli.dll 이 주석해제 되어 있어야 합니다. extension=php_mysqli.dll 샘플 코드 /** * mysqli 클래스 방식 * 샘플예제 입니다. 대충 어떻게 동작되는지 공부하시기에 좋게 정리해놓았습니다. * 각각의 값을 변경하고 연결테스트 하기에도 좋습니다. */ //0. 설정 $mysql_hostname = 'localhost'; $mysql_username = 'username'; $mysql_password = 'password'; $mysql_database = 'database_name'; $mysql_port = '3306'; $mysql_charset = 'utf8'; //1. DB 연결 $connect = new mysqli($mysql.. 2016. 1. 30.
[mysql] 날짜 관련 메모 select date_format(curdate(), '%Y-%m-%d %H:%i:%s') /* 2014-03-20 00:00:00 */ ,date_format(now(), '%Y-%m-%d %H:%i:%s') /* 2014-03-20 17:18:04 */ ,date_format(current_date(), '%Y-%m-%d %H:%i:%s') /* 2014-03-20 00:00:00 */ ,date_format(current_date()-1, '%Y-%m-%d %H:%i:%s') /* 2014-03-19 00:00:00 */ ,date_format(current_time(), '%Y-%m-%d %H:%i:%s') /* 2014-03-20 17:18:04 */ date_format 함수와 날짜를 가져오는.. 2014. 3. 28.
[mysql] alter auto_increment number 개요 auto increment 의 카운트를 변경하는 것에 대해서 짧게나마 적어둡니다. Auto Increment 에 대해서 MySQL 테이블의 특징 중 하나가 Auto Increment 특성입니다. 테이블을 생성할 때에, int 타입 컬럼 중에 하나를 PK (Primary key) 로 지정했을 때, 해당 옵션을 이용할 수 있습니다. (컬럼 두 개가 PK 로 지정되어 있을 때에는 이 옵션을 이용할 수 없습니다...) Auto Increment 값 변경하기 ALTER TABLE [테이블명] AUTO_INCREMENT = [변경할 값]; (아래는 예시입니다) ALTER TABLE my_table AUTO_INCREMENT = 5; 2013. 12. 20.
테이블 lock 조회 show processlist; 2013. 12. 18.
mysqldump [mysql 복구]mysql -u아이디 -p패스워드 디비 2013. 12. 13.
[PHP,MYSQL] PHP + MYSQL 연결 테스트 예제 (original) (업데이트 2015-03-15) 개요 deprecated. 현재는 사용되지 않는 방식 입니다. PHP 5 버전까지 이용이 가능합니다. 현재는 mysqli 나 pdo 방식을 권장하고 있으며, mysqli 는 mysql 과 비슷한 방식으로 동작됩니다. 샘플 코드 /** * Mysql Original 방식 * 샘플예제 입니다. 대충 어떻게 동작되는지 공부하시기에 좋게 정리해놓았습니다. * 각각의 값을 변경하고 연결테스트 하기에도 좋습니다. * * 최신 버전에서는 deprecated 될 것으로 경고문구가 뜰 수 있습니다. * mysqli 나 pdo 방식으로 전환되려는 것 같습니다. */ $mysql_hostname = 'localhost'; $mysql_username = 'username'; $mysql_password = 'password.. 2013. 12. 3.