• [ Solved ] set foreign_key_checks = on phpmyadmin

    [ Solved ] set foreign_key_checks = on phpmyadmin

    Error
    Static analysis:
    
    1 errors were found during analysis.
    
    Missing expression. (near "ON" at position 25)
    SQL query: Edit Edit
    
    SET FOREIGN_KEY_CHECKS = ON;
    
    MySQL said: Documentation
    
    #2006 - MySQL server has gone away

    (Korean)

    이 에러는 복합적인 문제로 두가지를 동시에 확인해야합니다.

    첫번째로 확인해야할 부분은 외래키 사용이 On으로 되어져있기때문에 테이블 작업시 에러가 발생하는 것입니다.

     

    SET foreign_key_checks = 0;
    -- run some queries
    SET foreign_key_checks = 1;

     

     

    당연히 Sql 시작 구문에 SET FOREIGN_KEY_CHECKS = OFF; 혹은 숫자 0을 지정하고 마지막 부분에 ON; 또는 숫자 1을 지정하면 해결됩니다.

    하지만 다른 문제로 인해서 위의 문구가 발생하는 경우가 있습니다.

    바로 max allowed packet 최대 허용 패킷 크기때문입니다.

     

    제 경우에는 운영하는 서버환경설정의 max allowed packet 값이 1000K 으로 지정되어져있었습니다.

    이것을 5000K 혹은 그 이상으로 잡아주게되면 쿼리문을 입력할때 문자열이 길어서 제약위반이 되는것을 방지 할 수 있습니다.

    vi /etc/my.cnf
    
    max_allowed_packet=5000K

     

    wq! 눌러서 저장하고 나간다음 MySql (MariaDB) 재시작을 하면 됩니다.

    service mariadb restart
    
    service mysqld restart

    이제 phpmyadmin 에서 확인해보면 max allowed packet 값이 5000K (5,120,000) 들어간것을 확인 할 수 있습니다.

     

    그리고 다시 DB를 복원해보시면 이제는 정상적으로 해결되어 데이터가 잘 들어갈겁니다.

    set foreign_key_checks = on

    모두 해결되셨나요?

  • [Solved] 1273 – unknown collation ‘utf8mb4_unicode_520_ci’

    [Solved] 1273 – unknown collation ‘utf8mb4_unicode_520_ci’

    Error from phpMyAdmin or MySQL QueryString

    1273 - unknown collation 'utf8mb4_unicode_520_ci'

     

    The following error occurred during DB operation while working on relocating WordPress homepage.

    The reason is that utf8mb4_unicode_520_ci encoding is an unknown collection.

     

    (Korean)

    워드프레스 홈페이지 이전 작업도중 DB작업에서 아래와같은 에러가 발생하였습니다.

    그 원인으로는 utf8mb4_unicode_520_ci 인코딩이 알수없는 콜렉션이라고 나온것입니다.

     

    As a way to resolve this, you can either match the MySQL version to the same or just match it to the existing encoding of MySQL you are using now.

    Because changing the version is too risky, we have chosen to modify the string of backup data.

     

    (Korean)

    이것을 해결하기 위한 방법으로 MySQL 버전을 동일하게 맞추거나 혹은 지금 사용중인 MySQL의 존재하는 인코딩으로 맞춰주기만 하면됩니다.

    버전을 바꾸는것은 위험부담이 너무 크기때문에 우리는 백업 데이터의 문자열을 수정하는 방법을 선택하여 해결하였습니다.

     

    You replaced the string with Replace All and entered it again in the DB.

    Everything’s settled.

    WordPress is now working normally.

    Thank you 🙂

     

    (Korean)

    모두 바꾸기로 문자열을 바꾸었으며 다시 DB에 입력하였습니다.

    모든것이 해결되었군요.

    이제 워드프레스가 정상적으로 동작합니다.

     

    감사합니다 🙂

  • 워드프레스 사이트 수동 이전 방법 – 글 파일 옮기기

    워드프레스 사이트 수동 이전 방법 – 글 파일 옮기기

    워드프레스 사이트 수동 이전 방법에 대한 경험 문서입니다

    워드프레스 사이트 전체를 옮기는 방법은 그냥 DB전체 백업과 폴더 전체를 복사(압축)하여 이전하면됩니다.

    이부분에 대해서는 크게 어려움이 없지만 오늘 제가 하려는 작업은 이미 워드프레스 2개가 운영 중입니다.

    A 워드프레스에서는 애드센스 승인이 되지 않아 B 워드프레스로 모든 글을 옮기기 위해 글 옮기는 과정을 포스팅합니다.

    애드센스 수익을 내기 위해서는 구글 애드센스 계정내에 도메인 승인이 이루어져야합니다.

    A라는 워드프레스는 발행한 글만 36개 입니다.

    워드프레스 사이트 수동 이전 방법

    이 글들을 하나하나 정성드려 작성한 글이기에 그냥 버리기에는 너무 아깝고 애드센스 수익 승인받은 도메인으로 옮기는것입니다.

    A라는 워드프레스는 사실 문제가 전혀없습니다. 하지만 정책상 어떠한 이유인지는 몰라도 자꾸 다른곳에 글을 복사해서 작성된 자동화된 사이트라고만 제시하더군요.

    이러한 경우를 많이 당해보았고 또 왠만해서는 승인받을수 있지만…

    이 A 워드프레스는 제가 운영하는것이 아니라 아내가 운영하는곳이고해서 그냥 아내 워드프레스 B 블로그로 옮기는것입니다.

    B워드프레스도 처음에 이러한 과정을 거쳤지만 현재는 애드센스 수익이 나오고 있는 워드프레스입니다.

    워드프레스 사이트 수동 이전 방법 – 글 파일 옮기기

    1. 워드프레스 관리자 화면에서 도구 항목의 내보내기 기능을 이용합니다.

    워드프레스 사이트 수동 이전

    내보내기 할때에는 여러가지 조건들이 존재하지만 따로 설치를 해야하는 플로그인은 없습니다.

    원하는 조건 항목을 클릭하여 글을 선택합니다.

    저는 전체를 다 옮겨야 하므로 그냥 위의 상태로 [ 내보내기 파일 다운로드 ] 버튼을 눌렀습니다.

    파일다운로드 받으면 xml 파일을 하나 받습니다.

    xml 파일을 열어보면 제목, 이미지주소, 글 주소 등등 내용들로 이루어져있습니다.

    따로 수정할 필요는 없고 옮기려는 워드프레스에서 가져오기 버튼을 이용해야합니다.

    2. 옮길 글을 새로운 워드프레스 관리자의 도구 -> 가져오기 기능을 이용합니다.

    이때에는 워드프레스 플러그인을 하나 설치해야합니다.

    각 항목에 따라 다른데 오늘 제가 옮기는 것은 글을 수동으로 옮기는것이기에 WordPress 플러그인을 [ 지금설치 ] 버튼을 눌러 설치해줍니다.

    파일선택 버튼을 클릭하여 A 워드프레스에서 받은 xml을 선택합니다.

    파일 업로드하고 가져오기 버튼을 클릭하면 아래처럼 글쓴이변경과 첨부파일 내려받기와 가져오기에 대한 체크항목을 확인 할 수 있습니다.

    이렇게 진행을 하면 성공한것입니다.

    하지만 이렇게 옮기게되면 파일이 옮겨지지 않습니다.

    워드프레스의 파일 엑박이 나오죠.

    이전 A 워드프레스의 도메인이 그대로 살아 있다면 엑박이 나오지는 않고 그 도메인의 주소로 이미지를 볼 수 있습니다.

    하지만 도메인을 버리거나 변경하는 경우라면 또 지금처럼 엑박이 나오게됩니다.

    이때에는 DB 하나하나를 수정해주거나 (일괄 도메인을 특정 도메인으로 바꿀 수 있습니다) 가져오기 할때 xml 파일을 미리 변경하는것입니다.

    이 주소를 미리 바꾸고 첨부파일을 이전 서버에서 압축해서 그대로 옮기면됩니다.

    이렇게 할 경우 또 문제가 하나 더 발생합니다.

    uploads/폴더에 그런경우는 잘 없지만.. 파일명이 겹치는것입니다.

    파일명이 겹치는것으로 방지 하는 방법을 알려드릴게요.

    현재 제가 사용하는 방법이기도 합니다.

    기존 A 워드프레스의 upload 폴더 전체를 _Awordpress 이렇게 접미사를 붙여 폴더명을 새롭게 만들어줍니다.

    그리고 압축하여 B 워드프레스 업로드 폴더와 나란히 옆에 둡니다.

    이렇게 업로드 폴더가 2개가 되죠.

    기존 A워드프레스의 모든 파일은 접미사가 붙어 이는 이 폴더에 존재합니다.

    그러면 우리는 A워드프레스의 xml 파일 내용중 upload 폴더까지 수정해주어야겠죠?

    우선 기존 A워드프레스 도메인명으로 xml 파일을 검색합니다.

    그러면 생각보다 엄청 많이 검색됩니다.

    이렇게 Ctrl + H 누를경우 (노트패드에서 단축키) 찾을글자와 바꿀 글자를 일괄 변경할 수 있습니다.

    그리고 upload폴더명도 같이 바꿔주셔야합니다.

    확인해보니 url 주소도 잘 변경되었고 파일 위치도 제가 접미사로 등록한 upload폴더에 잘 연결되어져있습니다.

    물론 사진도 잘 나오고 있네요.

    만약 C라는 새로운 워드프레스를 또 B 워드프레스에 통합하고 싶다면..

    저는 또 이렇게 반복할겁니다.

    정리해볼까요?

    제일먼저. upload 폴더를 접미사(기존도메인을 기억할수 있도록 가급적이면 _도메인명 으로 접미사로 제목을 만드세요)를 붙여 압축하여 파일을 옮길 워드프레스의 upload 폴더와 같은 위치에 나란히 복사합니다.

    두번째. 가져오기 xml 파일속에 도메인을 모두 일괄 바꾸시고 upload폴더를 접미사 붙인 폴더명으로 변경해줍니다.

    간단하죠?