[MySQL]: “Access denied for user ‘debian-sys-maint’@’localhost’”

Database
# # sudo cat /etc/mysql/debian.cnf # 파일 수정 # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = 비밀번호 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] user = debian-sys-maint password = 비밀번호 socket = /var/run/mysqld/mysqld.sock basedir = /usr MySQL 로그인 #mysql -u root -p <password> DB 에 비밀번호 적용 mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '비밀번호'; 재시작 #sudo /etc/init.d/mysql restart
Read More

[MySQL] mysql error 1364 Field ‘name’ doesn’t have a default values

Database
MySQL 5.6 이전에는 필드 생성시 default 값을 따로 지정을 안 해도 insert 시에 '' 처럼 자동으로 디폴트 값이 반영이 되었습니다. 5.6 이후부터는 STRICT 모드라고 해서 테이블 생성시에 default 값을 지정하지 않을 경우 insert 시에 아래와 같이 에러가 발생합니다. 정확하게 필드마다 값을 지정해주는것도 좋지만 외부프로그램을 사용할때 특별히 지정 안해줘도 되는 부분에 '' 이걸 다 셋팅해주긴 귀찮은 편입니다. mysql.cnf 파일에서 "sql_mode"부분을 찾아서 다음 부분을 제외 하고 재시작을 해주시면 됩니다. #sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # 'STRICT_TRANS_TABLES' 항목을 제외하고 mysql 재시작 sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Read More

[MySQL] 특정 ID별 최신 시간 데이터 추출

Database
DB에 사용자 ID 별로 시간 단위로 기록을 하고 있습니다.해당 항목에 대해서 목록을 뽑을때 사용한 쿼리 입니다. SELECT * FROM ( SELECT uid, id, balance, datetime FROM table ORDER BY datetime DESC ) AS subQuery GROUP BY DATE_FORMAT(datetime,'%Y-%m-%d'), id ORDER BY id DESC, datetime DESC
Read More

[MySQL] limit , offset

Database
게시판을 만들거나 혹은 전체 목록에서 페이지를 나누다 보면은 항상 사용하게 되어 있습니다. 조금은 형태를 바꾼 방식이라고 보시면 됩니다. /* 1번 query */ SELECT * FROM Orders LIMIT 10 OFFSET 15 /* 2번 query */ SELECT * FROM Orders LIMIT 15, 10 위에 쿼리에 보이듯이 1번, 2번은 동일한 결과물이 나오도록 합니다.정확하게 설명은 못하겠지만은 쿼리의 성능을 올리기 위해라고 저는 이해 하고 있습니다. 좀 더 설명을 잘하지 못해서 제가 검색한 사이트인 "http://crystalcube.co.kr/163" 의 링크를 걸어 놓겠습니다. 참조 http://www.w3schools.com/php/php_mysql_select_limit.asphttp://ralf79.tistory.com/722
Read More

[MySQL] MySQL 최대 접속수 설정하기

Database
MySQL 최대 접속수 설정하기 ERROR 1040 (08004): Too many connections 에러발생시 해결법 mysql을 재시작 하지 않고 바로 설정 방법 #mysql 을 재시작 안해도 max_connections 값이 바로 적용된다. mysql> set global max_connections=300; mysql 설정파일(my.ini 또는 my.cnf ) 방법 #mysql을 재시작 해 주어야 한다. [mysqld] max_connections = 300 MySQL 접속수 관련 상태를 확인하는 방법 mysql> show variables like '%max_connect%'; +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | max_connect_errors | 10000 | | max_connections | 100 | +--------------------+-------+ mysql> show status like '%CONNECT%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | Aborted_connects | 200 | | Connections | 300 | | Max_used_connections | 101 | ==> 현재 연결된 접속수 | Ssl_client_connects | 0 | | Ssl_connect_renegotiates | 0 | | Ssl_finished_connects | 0 | | Threads_connected | 101 | ==> 연결되었던 최대 접속수…
Read More

[MySQL] 문자열 치환

Database
[MySQL] 문자열 치환 문자열 치환을 하기 전에 select로 먼저 데이터가 정상적으로 변경되는지 확인을 해보시는것이 좋습니다.UPDATE가 아니기 때문에 실제 DB에서는 변경이 이뤄지지 않으니 검정을 하기에 좋습니다. SELECT REPLACE(컬럼, '변경전문자열', '변경후문자열') AS 가상컬럼명 FROM 테이블 WHERE 컬럼 = '변경전문자열'; 위에서 모든 데이터를 확인을 하였다면은 실질적으로 이제 UPDATE를 하여서 DB에서 값을 변경을 하면 됩니다. UPDATE wp_posts SET 테이블 = REPLACE(컬럼, '변경전문자열', '변경할문자열') WHERE 컬럼 = '값'; UPDATE wp_posts SET 테이블 = REPLACE(컬럼, '변경전문자열', '변경할문자열'); 참초 : http://chongmoa.com/4555
Read More

[PHP] MSSQL 함수 목록

Database, PHP
[PHP] MSSQL 함수 목록 정말 PHP + MSSQL을 잘 사용하지 않는 조합이지만은 필요할때는 써야 할 이유가 있습니다.조합 자체가 좋지 않다고 해서 쓰지 말라고 하기 보다는 내가 어떻게 처리를 해 줄수 있을지를 고민을 해봐야 해서....  일단 함수 목록이 필요해서 정리 합니다.매번 PHP 홈페이지 들어가기 귀찮은 이유이기도 합니다.... mssql_bind — Adds a parameter to a stored procedure or a remote stored proceduremssql_close — Close MS SQL Server connectionmssql_connect — Open MS SQL server connectionmssql_data_seek — Moves internal row pointermssql_execute — Executes a stored procedure on a MS SQL server databasemssql_fetch_array — Fetch a result row as an associative array, a numeric array, or bothmssql_fetch_assoc — Returns an associative array of the current row in the resultmssql_fetch_batch — Returns the next batch of recordsmssql_fetch_field — Get field informationmssql_fetch_object — Fetch row as objectmssql_fetch_row…
Read More

[MySQL] my.conf 중 Bin log 와 slow-query 설정

Database
[MySQL] my.conf 중 Bin log 와 slow-query 설정 mysql bin log란 ? => mysql 쿼리를 수행 하면서 쌓는 로그, 추후 트렉젝션하여 시점 복구 등을 수행하는 등의 역할 # 바이너리 로그 관련 [mysqld] log-bin=/home/mysql_log/bin_log/bin # 빈로그 저장 설정 및 저장할 디렉토리 지정 binlog_cache_size = 2M # binlog cache 사이즈 max_binlog_size = 50M # bin로그 최대 파일 사이즈 expire_logs_days = 10 # 보관기간 # 5초 이상 슬로우쿼리 로그 남기기 [mysqld] log-slow-queries = /var/log/mysql/mysql-slow.log long_query_time = 5 # 시간 초단위
Read More

[MySQL] 자동으로 날짜,시간 입력

Database
[MySQL] 자동으로 날짜,시간 자동으로 일단 기록입니다.제가 해보지 않아서 무엇이라고 말씀을 드리기 힘듭니다.단순하게 봐서 이렇게 된다고 싶어서 약간의 정리이기 때문에 많은 부분을 저에게 바라지 말아 주시기 바랍니다. ## 생성시 CREATE TABLE 테이블명 ( 컬럼명 TIMESTAMP DEFAULT NOW() ); CREATE TABLE 테이블명 ( 컬럼명 TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ); ## 변경시 #insert ALTER TABLE 테이블명 CHANGE `컬럼명` `컬럼명` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE 테이블명 CHANGE `컬럼명` `컬럼명` TIMESTAMP DEFAULT NOW(); # insert, UPdate ALTER TABLE 테이블명 CHANGE `컬럼명` `컬럼명` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE 테이블명 CHANGE `컬럼명` `컬럼명` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOW(); 꼭 위에 내용을 믿지 마시고, 아래의 출처로 가셔서 확인해보시기 바랍니다.꼭꼭 입니다. * 출처http://nan1004au.tistory.com/entry/Mysql-날짜시간-자동입력 http://www.cikorea.net/tip/view/870/page/1
Read More

[MySQL] 다수의 필드에 카운터 구하기

Database
정말 가끔 사용을 하다 보니깐 계속 까먹게 되어서 기록을 남기게 됩니다.동일 필드지만은 구분이 달라서 개별로 카운터를 구해야 하는 경우가 있어서 사용하는데, 정말 아주 가끔 사용을 합니다. SELECT COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT(필드명) as 결과시보여질필드명 FROM 테이블명
Read More