1. phpMyAdmin 을 실행하여 작업할 DB명을 선택합니다.

2. 상단의 "SQL" 탭을 클릭합니다.

3. 입력 상자에 아래의 코드를 넣습니다.

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') 
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='MyISAM';

4. "+옵션"을 클릭하여 "전체 텍스트"를 선택한후 "실행"을 클릭합니다.

5. "모두 보기"를 선택 후 "클립보드에 복사하기"를 클릭합니다.

6. 클립보드에 복사된 내용을 텍스트 에디터에 붙여넣고 "ALTER TABLE"로 시작하는 모든 행을 복사합니다.

7. 작업하는 DB명 선택후 "SQL" 탭을 클릭합니다.

8. 6번에서 복사한 내용을 입력 상자에 붙여넣고 "실행"을 클릭합니다.
2020/03/10 17:46 2020/03/10 17:46
기존 my.cnf  에서 /etc/mysql/mysqld.cnf 변경 되었습니다.

1. Mysql의 최대 접속자 수 확인하기.
show variables like '%max_connection%';
max_connections는 mysql에서 connect할 수 있는 최대 소켓수를 정의한 값입니다.
접속 최대수를 초과해 접속 시도를 하는 경우 "too many connections error"이 발생 합니다.
 
2. 접속수 보기.
show status like 'Max_used_connections';
 
3.  Connection 설정을 위한 변수.
 
- variables (예 show variables like '%max_connection%';)
 
max_connections – 최대 동시 접속 가능 수. max_connection 수가 늘어 나면 innodb 의 thread별 메모리 사용량이 늘어나 같이 고려해야 합니다.
wait_timeout – 지정된 시간 동안 아무런 요청 없이 대기하는 경우 MySQL 서버는 해당 커넥션을 강제로 종료해 버립니다. (기본값은 28800초(8시간))
thread_cache_size – thread 재 사용을 위한 thread pool, 최대 몇 개 까지의 thread를 pool에 보관할지 설정.
 
- status (예 show status like '%clients%';)
 
Aborted_clients : 클라이언트 프로그램이 비 정상적으로 종료된 수
Aborted_connects : MySQL 서버에 접속이 실패된 수
Max_used_connections : 최대로 동시에 접속한 수
Threads_cached : Thread Cache의 Thread 수
Threads_connected : 현재 연결된 Thread 수
Threads_created : 접속을 위해 생성된 Thread 수
Threads_running : Sleeping 되어 있지 않은 Thread 수
 
4. 튜닝
Cache Miss Rate(%) =  Threads_created / Connections * 100
Connection Miss Rate(%) = Aborted_connects / Connections * 100
Connection Usage(%) = Threads_connected / max_connections * 100
 
- Connection Usage(%)가 100% 라면 max_connections 수를 증가시켜 주십시요. Connection 수가 부족할 경우 Too Many Connection Error 가 발생합니다.
 
- DB 서버의 접속이 많은 경우는 wait_timeout 을 최대한 적게 (10~20 정도를 추천) 설정하여 불필요한 연결을 빨리 정리하는 것이 좋습니다. 그러나 Connection Miss Rate(%) 가 1% 이상이 된다면 wait_timeout 을 좀 더 길게 잡는 것이 좋습니다.
 
- Cache Miss Rate(%) 가 높다면 thread_cache_size를 기본값인 8 보다 높게 설정하는 것이 좋습니다. 일반적으로 threads_connected 가 Peak-time 시 보다 약간 낮은 수치로 설정하는 것이 좋습니다.
 
- MySQL 서버는 외부로 부터 접속 요청을 받을 경우 인증을 위해 IP 주소를 호스트네임으로 바꾸는 과정을 수행하여 접속시에 불필요한 부하가 발생하게 됩니다. skip-name-resolve를 설정하시고 접속시에 IP 기반으로 접속을 하게 되면 hostname lookup 과정을 생략하게 되어 좀 더 빠르게 접속을 하실 수 있습니다.
 
 
5. Aborted_clients 값이 증가하는 원인
클라이언트 프로그램이 mysql_close() 를 호출하지 않고 종료.
클라이언트 프로그램에서 wait_timeout 혹은 interactive_timeout 시간동안 요청이 없는 경우.
전송도중 클라이언트 프로그램이 비정상적으로 종료.
비정상적인 패킷을 가진 통신 시도.
접속을 시도한 사용자가 데이터베이스에 접근할 권한이 없거나, 패스워드가 잘못된 경우.
접속을 시도하는 동안 connect_timeout 시간을 초과.
live 서비스중 해당 값이 과도하게 증가 된다면 해킹 시도에 대한 의심을 해봐야 합니다.


------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysql 버전업 되면서 패스워드 정책이 변경되었다 . 이를 무시하려면 아래 내용을 추가해야 합니다.


[mysqld] 
sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ALLOW_INVALID_DATES"
2020/02/18 10:08 2020/02/18 10:08
cmd ( command )실행후 

mysqladmin.exe -u root password secret

secret 이곳에 비밀번호를 넣으면 됩니다.

phpmyadmin root 로그인 경우 config.inc 파일에서 비밀번호를 넣어주면 됩니다. 
2019/12/17 14:49 2019/12/17 14:49
cmd 관리자 모드

powercfg.exe /hibernate off

2019/12/15 01:57 2019/12/15 01:57