MariaDB (마리아디비)는 mySQL과 호환이 잘되는 데이터베이스로 요즘 인기인 데이터베이스 애플리케이션입니다. 신규로 LAMP 또는 LEMP 스택구성할 때 데이타베이스를 mySQL로 할지 MariaDB로 할지 고민이되는 사람은 얼마 없을 것입니다. 단지 기존시스템에서 전환할때 MariaDB로 전환한다면 호환성을 잘 알아봐야겠죠.
최신버전 MariaDB 설치하기위해서 apt 프로그램을 이용해서 설치할 겁니다. apt는 패키지를 설치할 때 어디에서 받아올지 리스트목록으로 관리하는데요. 우분투 16.04에있는 기본 마리아디비 설치정보는 10.0 버전입니다. 이글을 쓰고 있는 시점에서는 10.3버전이 최신 버전이네요. 그래서 10.3 에대한 apt의 설치정보 리스트를 먼저 업데이트해야합니다.
아래 명령어를 통해서 apt의 리스트 중에 MariaDB 패키지에대한 설치정보를 알 수 있습니다.
sudo apt-cache policy mariadb-server
위 그림처럼 설치(Installed)는 현재 none 이라서 시스템에 설치된 마리아디비는 없는 걸로 나오고 설치 후보자(Candidate)는 10.0.34로 나옵니다. 그리고 그 아래로 버전테이블이 나오네요. 이대로 그냥 설치하면 10.0 버전이 설치되니 이 것을 먼저 업데이트 해야 최신버전으로 설치할 수 있습니다.
위 결과에서 보면 목록중에 아래에는 이전에 있던 10.0 버전에대한 설치정보도 그대로 있습니다. 이렇게 여러버전에대한 설치정보가 있을때 Candidate가 아닌 다른 버전을 설치하려면 버전을 명시해서 설치하면 될것입니다. 하지만 저는 Candidate에 명시된 버전을 설치하면 되므로 아래명령어를 통해서 곧바로 설치를 시작할 수 있습니다.
sudo apt install mariadb-server
위처럼 Do you want to continue? 질문이 나오면 계속 진행하겠다고Y를 누르고 엔터키를 눌러 진행합니다. 그러면 아래 그림처럼 MariaDB의root사용자 비밀번호를 설정하라고 나옵니다. 특수문자, 대소문자, 숫자 조합으로 복잡한 비밀번호를 입력해줍시다.
중요: DB의 root 사용자는 리눅스컴퓨터 사용자 root와는 다릅니다.
이때 설정하는 root의 비밀번호는 가장 중요한 비번이므로 잊지않도록 자신만 아는 곳에 써놓으세요. 회사 사무실이라면 키보드 뒷면에 적으시겠죠. 아래처럼 비번 재확인이 나오면 같은 비번을 또 입력해줍니다.
재확인: 같은 비번을 입력해주세요
설치 완료!
설치가 완료되면 동시에 MariaDB 가 실행되며, 재부팅시에도 자동 시작되도록 설정됩니다. 서비스 현재상태를 확인하는 명령어를 이용해 현지설치된 MariaDB의 버전은 무엇인지, 잘 돌고있는지 확인해봅시다.
service mysql status
MariaDB running!
위 내용은 내용이 길어서 방향키로 내려볼 수 있는데Q나Control+C를 입력하여빠져나갑시다.
이렇게 설치가 완료되었는데요. 이제 PHP 와의 연동모듈을 설치하고 데이터베이스 생성시 기본언어셋을 설정하는 중요한 작업을 추가로 해줘야겠습니다.
nano 편집기로 열었을때 기존파일이 있었다면 그 내용이 나올 겁니다. 그럴땐control+k키를 눌러 한줄씩 빠르게 삭제하고 비운뒤에 따라하시면 됩니다. 아래 내용을#기호도 포함해서 복사해서 그대로 붙여넣으세요.
# MariaDB-specific config file. # Read by /etc/mysql/my.cnf [client] # Default is Latin1, if you need UTF-8 set this (also in server section) default-character-set = utf8mb4 [mysqld] # # * Character sets # # Default is Latin1, if you need UTF-8 set all this (also in client section) # character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci
참고: 위 내용에서 앞에 #이 붙은건 주석이므로 작성하지 않아도 무관합니다.
그러면 아래 그림처럼 될겁니다.
utf8mb4 세팅을 위한 mariadb.cnf 파일내용
이제 저장하고 nano 편집기를 빠져나가기위해서 control+x 를 누르고 y->엔터를 누르면 내용을 저장하고 빠져나오게 됩니다.
ls 명령어로 폴더안을 다시 살펴보면 해당파일이 있을 겁니다.
이제 MariaDB를 재시작해줍니다.
sudo service mysql restart
우분투 시스템 재부팅
이제 exit 명령어로 CLI 접속을 종료하고 서버에 다시 접속해보면 시작할때 ***System restart required *** 라는 메시지가 나올텐데요. 컴퓨터를 재부팅하란 소립니다.
아래 명령어를 사용해 우분투 서버컴퓨터를 재부팅해줍시다. 재부팅이 시작되면 다시한번 CLI 서버접속 연결이 끊기게 됩니다.
php 웹 프로그래밍을 위해서는 가장 중요한 것이 웹서버가.php파일을 해석할 수 있어야합니다. 연재작의 이전 단계에서 설치했던 nginx는 아파치와는 다르게 html 같은 기본적인 마크업 언어의 파일만 해석할 수 있을 뿐 php파일은 해석하지 못하는데요. 이를위해서 nginx + php 조합에서는 php-fpm 이란 것이 대신 해석해준다고 합니다. 그래서 이번에 설치할 것은 php뿐만이 아닌 php-fpm 이라는 것을 설치해야하는데요. php-fpm 설치만으로도 php가 설치됩니다.
php는 5.6 에 비해서 7버전이 성능향샹이 크다고하는데요. 제가 이글을 쓰고 있는 시점에서 7.2버전이 정식으로 릴리즈되었습니다. 그래서 7.2버전을 설치하려고합니다. 7.2버전은 7.0을 필요로 하므로 7.0버전도 설치된다고 보시면 됩니다. ( 7.0 설치를 원한다면 아래 내용중에 7.2로 쓰여진 내용은 7.0으로 바꿔 작업하시면 됩니다.)
php-fpm 설치는 apt 프로그램을 사용해 설치할 건데요. 전에도 언급했듯 apt는 각각의 패키지를 설치할 수 있는 인터넷주소를 리스트로 가지고 있고 우분투 16.04 의 apt는 기본적으로 php 7.0 버전에 대한 설치정보를 가지고 있습니다. 그러므로 apt에 php 7.2버전에대한 설치정보를 먼저 업데이트 해줘야합니다. 그 전에 현재가진 정보를 살펴볼까요?
아래 명령어를 입력함으로써 apt의 리스트에서 php 설치정보만 살펴 볼 수 있습니다.
apt-cache policy php
위 그림처럼Candidate: 1:7.0+…처럼 정보가 나오면서 php 7.0 버전 설치정보가 나오게 됩니다.
이상태에서는 아래 명령어로 7.0버전의 fpm을 바로 설치할 수 있지만 저는 7.2버전을 원하므로 입력하지 않겠습니다.
이제 Nginx가 php파일을 해석,처리하도록 적용하기 위해는 설정파일을 수정해줘야합니다. 설정파일은 아래위치 중 하나인데요. apt를 통해 설치했으므로 두 번째 경로에 있을 것입니다.
/etc/nginx/conf.d/default.conf
/etc/nginx/sites-available/default
리눅스서버의 /etc/nginx/sites-available/위치에서 default파일을 찾아볼수 있을 것입니다.
이 파일을 수정해야하는데 소유자는 root이고 사용자그룹또한 root라서 현재로선 SFTP 를 통해 편집할 수 없습니다. sudo 명령어를 통해 nano 나 vim 등 CLI 텍스트 편집기를 이용할 수도 있겠지만 파일내용도 길고 CLI가 익숙하지 않다면 번거로울텐데요. 조금 편해지기위해 아래 명령어를 입력해서 이 파일의 사용자그룹을 ubuntu로 바꾸고 권한도 664 또는 775를 부여해줍니다.
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; }
참고: 위 내용에서 php7.2-fpm.sock 파일 이름은 php7.0을 설치했을 경우엔 php7.0-fpm.sock이 됩니다.
참고: php7.2-fpm.sock 파일은 php-fpm 설치후 위에서 php-fpm을 시작하는 명령어를 입력했을 때 만들어진 것인데요. /etc/php/7.2/fpm/pool.d/www.conf 파일의 내용 중에 listen = /run/php/php7.2-fpm.sock 라는 부분이 쓰여져있습니다. 이 줄이 실행되면서 /run/php/ 디렉토리에 만들어지는 것입니다.
그리고 아래내용도 추가합니다.
location ~ /\.ht { deny all; }
참고: 위 내용은 차후 아파치 웹서버와 document root (사이트루트 폴더)를 공유할 것을 대비하여 .htaccess파일에 접속하지 못하도록 해주는 설정이라고 합니다.
그러면 설정파일인 default 파일의 전체내용은 아래와 같습니다. 차후에 도메인과HTTPS를 추가하게 될텐데요. 그 때 여러분은 이곳에 여러 설정을 또 추가작성하게 될 겁니다.
연재작의 앞단계 글에서 우분투 서버의 시스템 시간을 서울로 설정했었는데요. php 코딩할때 시간관계된 코딩을 해야할 수도 있습니다. php 설정파일에서 별도 설정을 하지 않으면 컴퓨터시간을 따르긴하지만 안타깝게도 php 7.x 버전에서는 시스템 시간이 서울일경우 php 상에서는 평양으로 나오는 문제가 있습니다. 에러로그 파일도 평양으로 기록됩니다. 북한과의 평화협정으로 평양과 서울의 시간은 같아졌을 지라도 영 찝찝한 기분은 어쩔 수 없을 겁니다. 그래서 php 설정시간도 서울시간으로 바꿔주려합니다. 그러기위해서는 아래 두 파일을 수정해야합니다.
/etc/php/7.2/fpm/php.ini
/etc/php/7.2/cli/php.ini
그런데 이 파일들에 대한 수정권한이 또 root만 가지고 있습니다(644). 간단한 수정이니 이번엔 CLI에서 root로 수정하겠습니다. 아래 명령어를 입력해 nano 편집기로 해당파일을 엽니다.
sudo nano /etc/php/7.2/fpm/php.ini
아래처럼 그 내용이 나올겁니다.
php.ini 파일내용의 앞부분
위 파일의 전체내용은 약 2천줄이므로 찾기를 통해 수정할 부분을 빠르게 찾아봅시다. control+w키를 누르면 아래처럼 검색할 수 있습니다.
위 그림의 아래처럼 Search: 상자가 나오면 위 처럼;date.timezone =를 입력후엔터키를 눌러주면 아래 그림 처럼 해당 텍스트가 위치한 곳으로 커서가 이동합니다.
세미콜론(;) 이 앞에 붙은건 주석으로써 해당 설정이 아무 기능도 못하게되는데요. 아래 그림처럼 주석처리를 제거하고 date.timezone = Asia/Seoul으로 수정해줍니다.
이제 저장하고 나가야겠죠? 연속해서 control+x키를 누르고,Y키를 누른다음엔터키를 누르면 저장된뒤 nano 편집기를 빠져나갑니다.
다음으로 아래명령어를 이용해 두번째 파일도 수정해줍니다.
sudo nano /etc/php/7.2/cli/php.ini
파일이 열리면 위 파일과 마찬가지로 control+w 를 누르고 ;date.timezone =를 입력후엔터키를 입력해 해당 줄을 찾아 그 줄의 주석을 해제하고 date.timezone = Asia/Seoul로 바꾼뒤 연속해서 control+x키를 누르고,Y키를 누른다음엔터키를 눌러 저장하고 끝냅니다.
두 파일을 모두 수정했다면 그런 다음 아래 명령어로 PHP-FPM을 재시작 해줍니다.
sudo systemctl restart php7.2-fpm
이제 다시 웹브라우저에서 접속해서 새로고침해보면 php 정보 내용중 timezone 항목이 아래처럼 서울로 바뀌어있을 것입니다.
마무리로 현재 /var/www/html 디렉토리(웹 루트폴더)에 있는 두파일은 아래와 같을 겁니다. phpinfo() 등으로인해 서버정보가노출되므로 이 두 파일은 삭제해주세요.
index.nginx-debian.html(nginx 설치하면 기본으로 있는 것)
index.php(위에서 phpinfo() 정보를 출력하기위해 잠시 만들었던 것)
그 뒤 /var/www/html 폴더에 아무것도 없다면 웹브라우저에서 접속했을 때 403 Forbidden메시지가 나오는 건 정상입니다. 이제 이곳에index.php파일을 만들어 php 코딩을 시작할 수 있습니다.
추가 후 관리자 페이지 1:1문의 설정에서 이렇게 모바일 상단 하단 파일을 별도로 지정할 수 있습니다.
테마를 사용하지 않는 경우
상단 파일 경로 : ../shop/shop.head.php 하단 파일 경로 : ../shop/shop.tail.php 모바일 상단 파일 경로 : ../mobile/shop/shop.head.php 모바일 하단 파일 경로 : ../mobile/shop/shop.tail.php
테마를 사용하고 있는 경우 (basic 테마를 예로 들면)
상단 파일 경로 : ../theme/basic/shop/shop.head.php 하단 파일 경로 : ../theme/basic/shop/shop.tail.php 모바일 상단 파일 경로 : ../theme/basic/mobile/shop/shop.head.php 모바일 하단 파일 경로 : ../theme/basic/mobile/shop/shop.tail.php
2. bbs/qahead.php 파일 수정
if (G5_IS_MOBILE) { // 모바일의 경우 설정을 따르지 않는다. include_once('./_head.php'); echo conv_content($qaconfig['qa_mobile_content_head'], 1); } else {
여기를 이렇게 수정.
if (G5_IS_MOBILE) { if($qaconfig['qa_1'] && is_include_path_check($qaconfig['qa_1'])) @include ($qaconfig['qa_1']); else include ('./_head.php'); echo conv_content($qaconfig['qa_content_head'], 1); } else {
3. bbs/qatail.php 파일 수정
if (G5_IS_MOBILE) { echo conv_content($qaconfig['qa_mobile_content_tail'], 1); // 모바일의 경우 설정을 따르지 않는다. include_once('./_tail.php'); } else {
여기를 이렇게 수정.
if (G5_IS_MOBILE) { echo conv_content($qaconfig['qa_content_tail'], 1); if($qaconfig['qa_2'] && is_include_path_check($qaconfig['qa_2'])) @include ($qaconfig['qa_2']); else include ('./_tail.php'); } else {
4. bbs/_common.php 파일 수정
파일 하단 ?> 바로 위에 추가
if (preg_match("/.*\/bbs\/(qalist|qawrite|qaview)\.php?/", $_SERVER['REQUEST_URI'])) define('_SHOP_', true);
워드프레스의 우커머스에서 옵션 상품을 구성하여 고객이 옵션(예: 색상, 크기 등)을 선택하여 구매할 수 있도록 할 수 있습니다. 보통 옵션 상품이라고 하면 영어로 Option으로 생각하기 쉽지만, “Variable Product”(옵션 상품)와 “Variation”(옵션)이라는 용어가 사용되므로 구글 검색 시 이 용어를 사용하면 원하는 정보를 얻을 수 있을 것입니다.
이 글에서는 우커머스 옵션 상품을 구성하는 간단한 방법을 설명하겠습니다. UI는 테마별/우커머스 버전별로 조금 차이가 있을 수 있으니 이점을 고려하여 참고하시기 바랍니다. (아바다 테마에서 테스트했는데, 우커머스 버전 때문인지 한글화가 완전히 되지 않았네요.)
테스트로 노트북에 “사이즈”와 “색상”이라는 속성을 지정하여 가격을 달리하도록 해보겠습니다.
Attribute 지정
먼저 우커머스 속성(Attribute)을 정의하도록 합니다. 상품 > Attributes를 클릭합니다.
Attributes가 한글화가 되지 않은 상태로 나오네요. 한글화가 되면 “속성” 정도로 번역될 것 같습니다. 상품 > Attributes를 클릭하면 새 속성을 추가할 수 있는 화면이 표시됩니다.
적절한 속성을 추가합니다. 예를 들어 컬러를 추가하고 맨 아래의 “Add Attribute(속성 추가)”를 클릭합니다.
그러면 위의 그림과 같이 오른쪽 상단에 추가된 속성이 표시됩니다. 맨 오른쪽에 있는 “Configure Terms”(용어 구성?) 아이콘을 클릭합니다.
그러면 위의 그림과 같이 선택한 속성 내에 추가될 세부 옵션을 추가할 수 있습니다. “새로 추가 컬러“라고 어색하게 되어 있네요. 번역할 때에는 부분적인 문자열만 볼 수 있기 때문에 생긴 결과 같습니다. “컬러 새로 추가”나 “새로 추가: 컬러” 정도로 처리하면 좋을 듯 합니다. (Woocommerce 번역을 수정하려면 Loco Translate와 같은 플러그인을 사용할 수 있습니다.)
원하는 컬러를 추가합니다. 저는 “파랑”과 “빨강”을 추가해보았습니다.
위의 과정을 반복하여 다른 속성(예: 크기)을 정의하도록 합니다.
옵션 상품 설정하기
이제 새로운 상품을 추가하거나 기존 상품을 편집하여 “옵션 상품”을 구성하도록 합니다. 상품 > 상품 추가하기를 눌러 적절한 상품을 생성합니다. 상품 설명 아래의 “Product Data”(상품 데이터)에서 “옵션 상품“을 선택합니다.
그런 다음 Product Data 아래에서 Attributes를 선택합니다.
원하는 Attribute를 선택합니다. 예를 들어, 일부 속성만 선택할 수도 있고 모든 속성을 선택할 수도 있습니다.
이제 Attributes 바로 아래에 있는 “옵션“을 선택합니다.
위와 같은 그림에서 “Add variation” 또는 “Create variations from all attributes” 중에서 선택하여 옵션을 추가하고 옵션의 세부 설정을 지정할 수 있습니다. “Create variations from all attributes“를 선택하면 속성의 모든 조합이 추가됩니다.
위와 같은 그림에서 개별 항목 옆에 있는 세 줄 모양의 아이콘을 클릭하면 세부 설정을 지정할 수 있습니다. 가령 개별 옵션에 대한 상품 사진을 추가할 수 있고 가격을 지정할 수 있습니다. 개별 옵션에 대하여 원하는 설정을 한 후에 발행하면 상품이 등록됩니다. 테스트로 올린 상품을 보면 아래와 같이 “컬러”와 “사이즈”를 선택할 수 있는 옵션이 추가되어 있습니다.
컬러와 사이즈를 지정하면 개별 옵션에 대해 지정한 가격이 표시됩니다.
YITH WOOCOMMERCE PRODUCT ADD-ONS(우커머스 상품 애드온)
옵션만으로 부족한 경우가 있을 수 있습니다. 고객의 특정 요구 사항에 맞게 옵션을 추가해야 하는 경우 YITH 우커머스 상품 애드온 플러그인을 사용해볼 수 있습니다. 이 플러그인을 사용하면 아래 그림과 같이 상품을 구성할 수 있습니다.
우커머스 추가 상품 옵션 추가하기
위에서 잠시 설명했지만 “variation”이라는 용어가 한글로 “옵션”으로 번역되어 있습니다. variation을 사전에서 찾아보면 “변화, 변동”의 의미를 가지고 있습니다. 즉, 동일한 상품의 다른 버전 정도로 해석할 수 있습니다.
“옵션”이라는 용어는 조금 다른 뜻을 가질 수 있습니다. 예를 들어, 아래 그림과 같이 상품에 어떤 부가적인 구성품을 추가하는 것에 대하여 “옵션” 추가라는 용어를 사용하기도 합니다.
워드프레스 쇼핑몰에서 상품 옵션을 추가하려는 경우 이 플러그인을 사용하면 편리할 것 같습니다. 참고로 이 플러그인은 다음 플러그인과는 호환되지 않는다고 나와 있으니 참고하시기 바랍니다(2016년 4월 기준).
AnsPress, Tracking Code Manager, WooCommerce Bookings from Woothemes, Business Hours Pro WordPress Plugin, Woocommerce Add to cart Ajax for variable products (not compatible with the edit options feature in the cart), WooCommerce Wholesale Ordering, WooCommerce Group Pricing, Subscriptio – WooCommerce Subscriptions, VarkTech Pricing Deals for WooCommerce, Woocommerce Prices by User Role (* Woocommerce Prices by User Role 플러그인은 사용자 역할(회원 등급)별로 가격을 설정하는 기능을 제공하네요. 그리고 게스트에게는 장바구니 버튼이나 가격을 숨길 수 있는 기능도 있습니다.)
건축물을 짓기 위해서는 구체적인 설계도면이 필요하듯이 웹사이트 또는 모바일 앱 서비스를 제작하기 위해서도 설계도면이 필요합니다. IT 현장에서는 이를 화면 설계라 지칭하며 와이어프레임, 스토리보드, 프로토타입으로 구분하고 있습니다. 국내에서는 파워포인트로 제작한 스토리보드가 표준 설계 방법으로 사용되고 있지만, 보다 원활한 커뮤니케이션을 위해 점차 다양한 툴로 확장되고 있습니다. 알듯 말듯 조금은 헷갈리는 각 용어들이 어떠한 차이가 있는지 살펴보겠습니다.
모바일에서는 핀치 액션(손가락 벌리기)으로 이미지 확대가 가능합니다.
와이어프레임(Wireframe)
와이어프레임은 화면 단위의 레이아웃을 설계하는 작업입니다. 의사소통 관계자들과 레이아웃을 협의하거나 서비스의 간략한 흐름을 공유하기 위해 사용하며 UI, UX 설계에 집중되어 있습니다.
와이어프레임 툴 : 손그림, 파워포인트, 키노트, 스케치, 일러스트, 포토샵 등
UXPin 이미지 참조
스토리보드(Storyboard)
디자이너/개발자가 참고하는 최종적인 산출문서로써 정책, 프로세스, 콘텐츠 구성, 와이어프레임(UI, UX), 기능 정의, 데이터베이스 연동 등 서비스 구축을 위한 모든 정보가 담겨 있는 문서입니다. 현업에서는 해당 문서를 바탕으로 커뮤니케이션을 진행합니다.
프로토타입은 실제 서비스와 흡사한 모형을 만드는 작업입니다. 정적인 화면으로 설계된 와이어프레임 또는 스토리보드에 인터랙션(동적 효과)을 적용함으로써 실제 구현된 것처럼 시물레이션 할 수 있으며, 단시간에 구현이 가능하기 때문에 사용자 경험에 대한 테스트를 진행해볼 수 있습니다. 이를 통해 설계 단계의 리스크를 사전에 예방할 수 있습니다.
각 용어에 대해 정리가 되셨나요? 저 개인적으로는 약 5년 전부터 Axure 툴을 활용해 스토리보드와 프로토타입이 혼합된 형태의 설계 문서를 제작하고 있고 매우 만족하고 있습니다. 굳이 Axure가 아니더라도 다양한 프로토타이핑 툴이 있으니 화면 설계를 담당하는 기획자 또는 UX 디자이너라면 스토리보드와 더불어 프로토타이핑 스킬도 갖추기를 적극 권장합니다.
워드프레스를 이용하다보면 호스팅을 이전해야하거나 여러 개의 워드프레스를 한 호스팅안에 설치할 경우가 생겨납니다.
그런데 이렇게 하나의 DB안에 여러 개의 워드프레스를 설치하기 위해서는 워드프레스 설치 당시 접두어인 wp_ 라고 입력되어있는 부분을 다르게 입력하고 설치하면 되지만 이미 다른 호스팅에서 설치되어있는 워드프레스를 옮겨와서 접두어(prefix)만 변경해서 이전하고 싶을 때가 있습니다.
워드프레스를 위한 DB 테이블 접두어 변경 방법
1. 일단 PhpMyAdmin 을 접속해서 변경하려는 wp_ 로 되어있는 테이블을 선택한 후 하단의 ‘테이블의 접두사를 교체‘를 누릅니다.
2. 아래 그림과 같이 변경전 접두어와 변경할 접두어를 입력하고 확인을 누릅니다.
3. 그러면 변경된 테이블들을 볼 수 있습니다.
4. wp-config.php 파일안의 $table_prefix = ‘wp_’; 값을 변경한 접두어로 바꾼 후에 저장합니다.
5. DB 테이블에서 wp_options 이였던 테이블을 찾아 <보기>버튼을 누릅니다. 저 같은 경우 위에서 wp_를 hwp_로 바꾸었으니 hwp_options를 클릭하면 되는거죠.
6. 아마 30개씩 15페이지 정도의 옵션들이 나오게 되는데 여기서 약 3페이지정도에 가보면 wp_user_roles 라고 나올 겁니다. 이 것을 수정을 눌러 ‘option_name‘에 값을 변경된 접두어로 수정해서 넣은 뒤 실행을 누릅니다.
DB 테이블에서 wp_usermeta 이였던 테이블안에도 여전히 기존의 접두어들을 가진 meta_key들이 있기 때문에 여전히 ‘이 페이지에 접근할 권한이 없습니다.‘라고 나올 겁니다.
7. PhpMyAdmin에서 테이블 목록이 있는 곳에서 상단의 SQL 버튼을 누릅니다.
8. 입력창에 접두어가 변경된 wp_usermeta 테이블 이름을 넣고 meta_key 중에서 wp_를 찾아 바꾸려는 접두어로 변경하게 입력합니다. 저 같은 경우 wp_를 hwp_로 바꾸기 때문에 hwp_usermeta라고 썼고 meta_key 부분에도 hwp_로 바꾸게 입력하였습니다.
1
UPDATE hwp_usermeta SET meta_key=REPLACE(meta_key,'wp_','hwp_')
실행을 눌러 완료가 되면 아래처럼 결과 화면이 나옵니다.
----------
이후, prefix_options - sitesurl 값을 경로에맞게 변경을 해주어야한다.
This is about resetting the MySQL 5.7 root password in Ubuntu 16.04 LTS
You probably tried something like this:
sudo service mysql stop
mysqld_safe --skip-grant-tables &
And then got something like this (stangely, exists is misspelled in the output):
[1] 5599
2018-03-02T21:36:41.292413Z mysqld_safe Logging to syslog.
2018-03-02T21:36:41.294798Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2018-03-02T21:36:41.296902Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
Then you tried to find the socket (takes a while):
sudo find / -type s
And /var/run/mysqld does not exist.
So you start mysql again and search and now it does exist!
sudo service mysql start
sudo find / -type s
[output:]
/run/mysqld/mysqld.sock
/run/dbus/system_bus_socket
/run/acpid.socket
/run/snapd-snap.socket
...
My guess is that mysql_safe can’t create the directory (which appears to be dynamically created when mysql starts). Solution: