광고 차단 플러그인 해제 후 새로고침(F5) 하시면
컨텐츠를 정상적으로 볼 수 있습니다.
(Please turn off AdBlock Plug-in.)

[윈도우10 64bit] APM PHP 7.0 설치과정 정리 에 이어...


3. MySQL 설치


MySQL은 DB 프로그램입니다. 우리가 커뮤니티 게시판 페이지에 쓰는 글들은 DB에 쌓이는 겁니다. 최근(?) MySQL 호환되는 MariaDB라는 게 나왔고 로딩속도가 MySQL보다 빠르다고 입소문이 좋게 났는데, 저는 일단 관련문서가 인터넷에 많이 존재하는(그래서 문제를 비교적 쉽게 해결할 수 있는) MySQL이 (저같은) 일반 유저용으로 좀더 적합하다고 생각합니다.


※ 공식 문서 : https://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html

※ 옵션 파일에 대한 가이드 : https://dev.mysql.com/doc/refman/5.7/en/option-files.html


Apache나 PHP보다 설치 난이도가 높은 편인데, 제가 했으니까 여러분들도 하실 수 있을 거예요. ^^

http://dev.mysql.com/downloads/mysql/

에 접근하여 MySQL Community Server 5.7 압축파일을 받습니다.


▲ ZIP Archive를 받으면 되는데, 비트 선택은 본인 윈도우/아파치/PHP bit를 따라가면 됩니다.


▲ 번거롭게 가입/로그인할 필요는 없습니다.


----------------------------------

※ 2018. 06. 10. 추가


아래 스샷을 보면 아시겠지만, 다운로드 페이지에는 기본적으로 최신 버전이 보입니다. 그런데 이 포스팅은 5.7버전 설치과정 정리 글이지요? 그러니까 MySQL 5.7 버전을 받아서 따르는 게 탈이 없습니다.


▲ Looking for previous GA versions 를 눌러서 골라 받으면 됩니다.


MySQL 8.0 버전으로 설치하겠다 하시면 말리지 않는데, 문제에 대한 대응도 본인이 직접 하세요.


▲ 예를 들어 이런 문제를 겪을 수 있습니다.

----------------------------------


Installing MySQL on Microsoft Windows Using a noinstall Zip Archive

(https://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html)

일단 위 공식문서대로 따라해볼 건데, 막히는 부분이 생기면 다른 포스팅들 참고해 가면서 보완할게요.(윈도우10 64bit 기준)


----------------------------------

아래의 방법은 MySQL 5.7.17 버전까지만 적용 가능한 설치법입니다.

5.7.18 버전부터는 “3시간째삽질”님 댓글에 남긴 댓댓글을 참고해 주세요.

----------------------------------

2017. 11. 07. 추가.

카이스트 FTP 서버(링크)에 5.7.17버전이 내려갔다는 제보가 들어왔습니다.ㅠㅠ

그래서 기존 내용은 취소선 처리하고, “3시간째삽질”님 댓글에 남긴 댓댓글을 재구성하여 기존내용 하단에 추가하겠습니다.

----------------------------------


★ 기존 내용 ★

일단 윈도우는 관리자 계정 기준입니다.



압축을 풉니다. 제작사 측에서 밀고 있는 기본 경로는 C:\mysql 이라서 저도 여기에 압축을 풀었습니다.

MySQL이 실행될 때 설정파일을 세 경로에서 찾는다고 합니다. => Windows 디렉토리, C:\, MySQL 설치 경로.

그래서 셋 중 한곳에 옵션파일을 위치시키면 된답니다. 옵션파일은 my.ini 와 my.cnf 가 있는데, 컴퓨터는 ini파일을 먼저 찾고 cnf파일을 나중에 찾지만 혼동을 줄이기 위해서 my.ini 파일만 유지하는 게 좋다고 합니다.

위 스크린 샷을 보면 my-default.ini 파일이 있죠? 메모장 등의 에디터로 열어서 my.ini 파일로 저장해주면 그게 설정파일이 되는겁니다.



my.ini 파일의 내용은 이렇게 생겼는데,



basedir = C:/mysql

datadir = C:/mysql/data

port = 3306

처럼 주석(#) 제거+경로를 수정해주고 저장 후 빠져나옵니다(인코딩 옵션은 ANSI로 놔뒀습니다.). 붉은 텍스트로 표시한 경로는 본인이 MySQL 압축 푼 경로와 일치시킵니다. 폴더경로는 백슬래시(\)가 아닌 슬래시(/)로 써줘야 하고요. => 만약 백슬래시를 굳이 쓰고싶다면 2번 써주셔야 합니다. basedir = C:\\mysql 이렇게...

아마 윈도우 탐색기로 MySQL 압축 푼 곳(C:\mysql) 들어가보면 data폴더가 없을걸요? 생성해 줍니다. 그리고 data폴더 안쪽은 아무것도 없게끔 비워야 앞으로 오류없이 진행될 겁니다.


이제 C:\MySQL\bin 폴더(MySQL 압축 푼 폴더\bin)의 환경변수 등록작업을 할겁니다. 이걸 해두면 명령프롬프트(관리자)로 MySQL 명령어를 입력할 때 C:\MySQL\bin 폴더로 일부러 찾아들어가지 않아도 됩니다.

Win+R → control 입력. 그리고 시스템→고급 시스템 설정→고급 탭의 “환경 변수(N)” 단추를 누릅니다.



시스템 변수(S)에서 Path를 찾아 더블 클릭하면 환경 변수 편집 창이 나타나는데, “새로 만들기(N)” 버튼을 누르고 위 스크린 샷처럼 MySQL을 설치한 경로에서 bin폴더까지의 값을 입력한 후 빠져나옵니다.


이제 mysql을 구동하기 위한 기본 system DB를 생성해줘야 합니다. ZIP버전에는 이게 포함되어있지 않거든요.

명령프롬프트를 관리자 권한으로 띄우세요.(Win+X 누르면 선택할 수 있습니다.)



mysqld.exe --initialize

라고 입력합니다. 몇 초 지나면 다시 C:\\Windows\system32> 처럼 입력란이 나올겁니다.



C:\mysql\bin\mysqld.exe --install

라고 입력합니다.(경로 전체를 넣어줘야 합니다. 잘 안되면 경로를 따옴표로 묶습니다. "C:\mysql\bin\mysqld.exe" --install 이렇게...)

이건 MySQL을 윈도우 서비스에 등록하는 작업이에요. 삭제 옵션은 --remove 입니다.


다시 명령프롬프트(관리자)에서

mysqld --console --explicit_defaults_for_timestamp --skip-grant-tables

라고 치면...



이런 식으로 방화벽 해제 메세지가 뜰텐데 허용해 주시고...

명령프롬프트 창이 진행이 안되고 멈춘 것처럼 보일겁니다. 끄지 말고 Win+X 눌러서 명령프롬프트(관리자)를 하나 더 띄웁니다. 그리고

mysql -u root mysql

라고 치면



위 스크린 샷저럼 mysql> 이라고 뜨는데, 이제 여기에서 암호 설정작업을 할겁니다.

update user set authentication_string = password('새로운 비밀번호') where user = 'root';

처럼 입력할 건데요, 비밀번호만 임의로 바꿔주면 됩니다. 계정은 root가 되는 거고요.

만약 비밀번호를 1111로 정하고자 한다면 

update user set authentication_string = password('1111') where user = 'root';

이라고 치면 됩니다.



그리고 이렇게 뜨면 성공이에요.

mysql> flush privileges;

라고 입력해 주고...

mysql> alter user 'root'@'localhost' identified by '설정했던 비밀번호';

라고 치고

mysql> \q

라고 쳐서 잠깐 빠져나옵니다.



명령프롬프트 창으로 빠져나왔으면

mysql -u root -p

라고 입력 후 패스워드를 입력해 봅니다. mysql 명령창이 정상적으로 뜬다면 비밀번호 설정은 성공한 겁니다.

명령프롬프트 끄지 마세요!!!


----------------------------------


★ MySQL 5.7.18 버전부터 적용 가능한 설치법 ★


"Microsoft Visual C++ 2015 재배포 가능 패키지"

https://www.microsoft.com/ko-kr/download/details.aspx?id=53840

"Visual Studio 2013용 Visual C++ 재배포 가능 패키지"

https://www.microsoft.com/ko-kr/download/details.aspx?id=40784


▲ 선행설치 필요합니다. vcredist_arm.exe처럼 엉뚱한 것 받지 마시고, vcredist_x64.exe나 vcredist_x86.exe처럼 비트수에 맞는 것으로 받으세요. 그리고 2017 재배포 가능 패키지 등 상위버전이 설치되어 있으면 설치 안된다고 튕길 수 있는데, 그러면 그냥 넘어가세요.



http://dev.mysql.com/downloads/mysql/ 에서 받았던 ZIP파일의 압축을 풀어줍니다. 제작사 측에서 밀고 있는 기본 경로는 C:\mysql 이라서 저도 여기에 압축을 풀었습니다. (위 스샷처럼) 압축 푼 경로에 파일/폴더들이 바로 보이도록 해주면 됩니다.



이제 C:\MySQL\bin 폴더(MySQL 압축 푼 폴더\bin)의 환경변수 등록작업을 할겁니다. 이걸 해두면 명령프롬프트(관리자)로 MySQL 명령어를 입력할 때 C:\MySQL\bin 폴더로 일부러 찾아들어가지 않아도 됩니다.

Win+R → control 입력. 그리고 시스템→고급 시스템 설정→고급 탭의 “환경 변수(N)” 단추를 누릅니다.



시스템 변수(S)에서 Path를 찾아 더블 클릭하면 환경 변수 편집 창이 나타나는데, “새로 만들기(N)” 버튼을 누르고 위 스크린 샷처럼 MySQL을 설치한 경로에서 bin폴더까지의 값을 입력한 후 빠져나옵니다.


이제 옵션파일을 만들 차례입니다. 기본설정들을 지정하는 과정이에요.

(옵션파일 생성 없이 진행해도 되긴 하더군요. 그러면 DB데이터 저장 경로는 mysql 압축 푼 곳 하위의 data 폴더로 자동 지정됩니다.)



메모장을 띄우고(Win+R 누르고 notepad 입력), mysql 압축 푼 공간에 my.ini라는 파일로 저장을 해주세요.

인코딩 옵션은 ANSI나 ASCII로 지정하지 않고 UTF-8 같은 걸로 지정하면 mysqld: [ERROR] Found option without proceding group in config file C:₩mysql₩my.ini at line 1! 이런 에러 메세지를 볼 수 있으니까 주의하세요.


참고로 MySQL이 실행될 때 설정파일을 세군데 경로에서 순서대로 찾는다고 합니다. => Windows 디렉토리(%WINDIR%), C:\, MySQL 설치 경로(basedir).

그래서 셋 중 한곳에 옵션파일을 위치시키면 되며, 나중에 읽힌 파일이 우선적으로 적용된다고 하네요.

옵션파일은 my.ini 와 my.cnf 가 있는데, 컴퓨터는 ini파일을 먼저 찾고 cnf파일을 나중에 찾는다고 합니다.

혼동을 피하기 위해 하나의 파일만 사용하는 것이 가장 좋다고 하네요.

https://dev.mysql.com/doc/refman/5.7/en/windows-create-option-file.html

  https://dev.mysql.com/doc/refman/5.7/en/option-files.html )



my.ini 파일의 기본적인 형식은 위와 같습니다. 폴더경로는 백슬래시(\)가 아닌 슬래시(/)로 써줘야 하고요. => 만약 백슬래시를 굳이 쓰고싶다면 2번 써주셔야 합니다. basedir = C:\\mysql 이렇게...

basedir 경로는 mysql 압축 푼 곳이고, datadir 경로는 DB데이터가 저장되길 원하는 공간입니다. 포트까지가 (제일) 기본적인 사항이라 생각하고, 추가를 원하는 항목이 있다면 레퍼런스 매뉴얼 뒤져서 더하면 됩니다.ㅋ

다 적었으면 저장 후 빠져나오세요.


이제 mysql을 구동하기 위한 기본 system DB를 생성해줘야 합니다. ZIP버전에는 이게 포함되어있지 않거든요.

명령프롬프트를 관리자 권한으로 띄우세요.(Win+X 누르면 선택할 수 있습니다.)



mysqld.exe --initialize

라고 입력합니다. 시간이 좀 지나면 C:₩₩Windows₩system32> 처럼 입력란이 돌아올 겁니다.



윈도우 탐색기로 MySQL 압축 푼 폴더로 들어가보면(C:\mysql) data 폴더가 생긴 것을 확인할 수 있을 겁니다.(DB데이터가 저장되는 경로입니다.)



data 폴더에 들어가보면 위 스샷처럼 DESKTOP-블라블라.err 형식의 에러로그 파일이 있을 겁니다. 메모장으로 이 파일을 열어보면...



root 계정에 대한 임시 비밀번호를 생성했음을 알려주는 메세지를 확인할 수 있습니다.

(참고로 Centos/Redhat 같은 리눅스 RPM패키지는 /var/log/mysqld.log 을 볼 것.)

화면 구석에 패스워드 잘 보이게 띄워놓고 다음 절차를 진행합니다.



명령프롬프트(관리자) 에서

C:\mysql\bin\mysqld.exe --install

라고 입력합니다.(경로 전체를 넣어줘야 합니다. 잘 안되면 경로를 따옴표로 묶습니다. "C:\mysql\bin\mysqld.exe" --install 이렇게...)

이건 MySQL을 윈도우 서비스에 등록하는 작업이에요. 삭제 옵션은 --remove 입니다. 언인스톨하려면 실행중인 mysql 서비스를 중지하고 --remove 옵션을 쓰면 돼요.



“제어판 - 관리도구 - 서비스”로 진입하여(빠르게 진입하려면 Win+R 누르고 services.msc 입력) MySQL 을 시작시킵니다. “상태”에 “실행 중”으로 뜨면 성공입니다.

(명령프롬프트(관리자)에서는 net start mysql 이라고 치면 됩니다. 실행중인 서비스를 중지하려면 net stop mysql 이라고 치면 되고요. 껐다 켜는 것을 이어서 하고 싶으면 net stop mysql & net start mysql 이라고 치면 됩니다.)



명령프롬프트(관리자) 에서

mysql -u root -p

라고 입력 후

Enter password:

라고 나오면 DESKTOP-블라블라.err를 띄워놨던 창을 보고 패스워드를 입력합니다.


패스워드가 복잡해서 외우기 어려우니까... 적당히 바꿔줍시다. 저는 예시 차원에서 1111로 바꿔보겠습니다.



mysql> 이라고 뜨면 아래처럼 입력하면 패스워드를 원하는 것(1111)으로 바뀝니다.

set password = password('1111'); => 도태됨. 언젠가는 remove될 것.

set password = '1111';

(※ 레퍼런스 문서 참고 : https://dev.mysql.com/doc/refman/5.7/en/set-password.html )

(위 레퍼런스 문서에서는 set password = '1111'; 보다는 ALTER USER 'root'@'localhost' IDENTIFIED BY '1111'; 을 쓸 것을 권하는데, 실사용시 큰 차이는 없는 것 같습니다.)


바뀐 패스워드를 테스트하기 위해 \q 를 입력하여 mysql 모니터를 빠져나옵니다.



그리고 mysql -u root -p 를 다시한번 입력 후 패스워드를 넣어봅니다. mysql 모니터에 정상적으로 진입했다면 된겁니다.


★ 5.7.18 버전부터 적용 가능한 설치법에 대한 설명은 여기까지. ★


----------------------------------



이제

mysql이 단독으로 잘 돌아가는지 테스트해 봅시다. DB 혹은 테이블 하나 만들어보면 되겠죠?

일단 데이터베이스 리스트부터 확인해 봅니다.

show databases;

라고 입력합니다.



이렇게 나오네요. test 라는 이름의 DB를 만들겠습니다.

create database test;

show databases;

라고 입력합니다.



바로 전의 스크린샷과 위 스크린샷을 비교해보면 test 라는 DB가 생성되었음을 확인할 수 있습니다.

생성한 DB는 다음에 phpMyAdmin 구동 테스트하면서 삭제하기로 하고, 이제 \q 입력해서 빠져나옵니다.(MySQL 직접 입력은 너무 어려워요.ㅠㅠ)


마지막 단계가 남았는데요, PHP 설치폴더의 php.ini 설정파일에서 mysql 관련 dll파일의 주석을 풀어주라고... 다른 블로그들에 써있네요. php.ini 파일을 메모장으로 엽니다.

Ctrl+F로 Dynamic Extensions 라고 치면 ;extension=블라블라.dll 처럼 확장dll들이 세미콜론(;)으로 주석처리되어 있을겁니다.

;extension=php_mysqli.dll

;extension=php_pdo_mysql.dll

부분을 찾아서 주석을 풀어주고(; 삭제) 저장하고 빠져나오세요.


※ 2018. 03. 25. 추가.

최근 버전인 PHP 7.2.3의 php.ini 샘플파일에는(php.ini-production)

;extension=mysqli

;extension=pdo_mysql

처럼 php_ 와 dll 확장자가 빠져있는 형태로 바뀌었음을 확인했습니다.



이제 설정과정은 모두 끝났습니다. 명령프롬프트(관리자) 하나 띄워서 아파치 서비스 재시작해 줍니다. httpd.exe -k restart 입력!

PHP가 MySQL DB 연결을 제대로 하는지 테스트해 보겠습니다. 아래 내용을 비밀번호만 본인 것으로 바꿔서 아파치 htdocs 폴더에 mysqltest.php 파일로 저장합니다. (파일 인코딩은 UTF-8로 해주세요.)

참고로 test는 아까 안지웠던 DB명이에요. 현재 MySQL에 생성되어 있는 DB이름 아무거나 넣어주시면 됩니다.


<?php

echo "MySql 연결 테스트<br>";

$db = mysqli_connect("localhost", "root", "비밀번호", "test");

if($db){echo "connect : 성공<br>";}

else{echo "disconnect : 실패<br>";}

\$result = mysqli_query($db, 'SELECT VERSION() as VERSION');

\$data = mysqli_fetch_assoc($result);

echo $data['VERSION'];

?>


그리고 웹브라우저 주소창에 http://localhost/mysqltest.php 라고 입력합니다.



위 스크린 샷처럼 뜨면 성공입니다. 이번에는 DB가 만들어지는지 테스트해 보겠습니다. DB명은 test2 로 하겠습니다. 아래 내용을 비밀번호만 본인 것으로 바꿔서 아파치 htdocs 폴더에 mysqltest2.php 파일로 저장합니다. (파일 인코딩은 UTF-8로 해주세요.)


<?php

$conn = mysqli_connect("localhost","root","패스워드");

if (mysqli_connect_errno()){echo "MySQL 연결 오류: " . mysqli_connect_error();}

$sql = "CREATE DATABASE test2"; 

if (mysqli_query(\$conn,$sql)){echo "성공적으로 test2 가 만들어졌습니다.";}

else {echo "데이터베이스 만들기 오류: " . mysqli_error($conn);}

?>


그리고 웹브라우저 주소창에 http://localhost/mysqltest2.php 라고 입력합니다.



위 스크린샷처럼 성공메세지가 뜨면 된겁니다. 이제 phpMyAdmin 깔아서 웹브라우저로 DB 관리할 수 있게끔 꾸밀겁니다. 다음 포스팅에서 방법 설명하겠습니다.


---------------------


※ MySQL 참고 명령어들

1. MySQL 윈도우 서비스 중지하기

명령프롬프트(관리자)에서 net stop mysql 이라고 입력

2. 비밀번호를 생략하고 서비스 시작하기

명령프롬프트(관리자)에서 mysqld --skip-grant-tables 라고 입력. => 해당 명령 프롬프트는 서비스를 실행하느라 쓸 수 없게 되므로, 이후 작업은 명령프롬프트(관리자) 새로 하나 띄워서 진행해야 함. (5.7.17 버전까지만 유효)


트랙백 0 개   l   댓글 175

  • 이전 댓글 더보기
  • (2017.11.19 04:47 신고)

    제가 친구들과 돈을 모아서 1.2.267버전 팩을 샀는데요...구축시도를 해봤는데요...계속 한곳에서 막혀버려서...애를먹고어요ㅠㅠ 막힌부분이 구동기를 키면 데이터베이스가 할당되지않았다고 뜨는데 도대체 뭐가 문제인지 모르겠네요..혹시 267버전은 자바하고 쿼리 버전이 문제일까요? 게다가 팩을 자세히 들여다보니 소스로되어있어서 넷빈으로 수정을해야 하더라구요ㅠㅠ 혹시 넷빈도 버전이 따로 있습니까?

    • 짐농 (2017.11.19 14:22 신고)

      달 // 저는 MySQL 커뮤니티 서버버전 중에서도 ZIP파일로 설치하는 방법, DB 수동백업/복원 명령어 정도밖에 모릅니다.
      도움 못드릴 것 같네요.

  • 명철 (2017.11.28 22:10 신고)

    마지막 php생성해서 웹페이지를 열었는데 mysql 연결테스트 까지 나오고
    connect: 성공이 안나오는건 무슨 이유일까요??ㅜㅜ
    위에 탭 이름 보니깐 404 not found로 되어있네요 그전까진 다 성공해서 넘어왔는데 ㅜㅜ

    • 짐농 (2017.11.28 22:55 신고)

      명철 // 404 에러의 원인은 다양하다고 검색됩니다. 본인 PC의 환경을 점검해보세요.
      (제가 제시한 코드는 문제 없어보이지 않습니까? 코드 잘 몰라도 구조가 대충 보일 정도로 깔끔하지 싶은데요...)

  • ㄱㅁ (2017.12.19 13:11 신고)

    처음에 실수로 오타를 내서
    PS C:\WINDOWS\system32> mysqld.exe ==initialize 를 실행해버렸습니다...
    다시 고쳐서 실행하니 아래처럼 폴더를 만들수가 없다고 뜨네요 ㅜㅜ
    PS C:\WINDOWS\system32> mysqld.exe --initialize
    mysqld: Can't create directory 'C:\mydata\data\' (Errcode: 2 - No such file or directory)
    2017-12-19T04:07:59.673419Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2017-12-19T04:07:59.675423Z 0 [ERROR] Aborting

    PS C:\WINDOWS\system32>

    • 짐농 (2017.12.19 13:24 신고)

      ㄱㅁ // 명령프롬프트를 관리자 권한으로 띄웠는데도 디렉토리를 못 만드는 증상이 있는 건가요?

    • ㄱㅁ (2017.12.19 13:47 신고)

      네 Windows PowerShell (관리자)로 열었습니다.
      명령 프롬프트 찾아서도 해봤지만 똑같은 결과가 나옵니다.

    • 짐농 (2017.12.19 14:08 신고)

      ㄱㅁ // 파워셸은 저도 실패했었습니다. 명령프롬프트(관리자)가 안되는 이유는 모르겠습니다(되는 게 정상이고, 그래서 스샷을 남길 수 있었는데...).
      MySQL 삭제 방법은 본문에 있으니까 지우고 싶으시면 지우세요.ㅠ

    • ㄱㅁ (2017.12.21 14:08 신고)

      안녕하세요
      어찌어찌해서 data파일이 생성을 했습니다. 그래서 DESKTOP-KLDFPAR.err 파일을 열어봤는데

      2017-12-21T05:04:14.868056Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
      2017-12-21T05:04:15.170361Z 0 [Warning] InnoDB: New log files created, LSN=45790
      2017-12-21T05:04:15.222498Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
      2017-12-21T05:04:15.285165Z 0 [ERROR] unknown option '--port 3306'
      2017-12-21T05:04:15.286670Z 0 [ERROR] Aborting

      라고 뜹니다.
      data폴더 안에 파일도 스샷의 밑에서 5째줄 까지밖에 없고 auto나 다른 performan~,sys폴더가 없습니당 ㅜ

    • 짐농 (2017.12.21 19:22 신고)

      ㄱㅁ // 본문 내의 “옵션 파일에 대한 가이드” 링크를 참조해서 해결해보세요.
      (옵션 파일과는 별개로, 윈도우10 최신빌드의 문제가능성 / mysql 버전별 버그존재 가능성도 존재하긴 합니다. mysql 특정 버전에서는 my.ini 파일을 인식하지 못하는 버그가 있었거든요.)

      가상머신에서 테스트해보니까 mysql 5.7.20 정상 설치되는데요? my.ini 설정파일도 잘 인식합니다.(윈도우10 1607)

  • 이재현 (2018.01.16 15:54 신고)

    주소로 들어가면 mysqltest 안에 있는 코드를 그대로 보여주네요 ㅠㅠ 해결방법 있을까요 ?

    • 짐농 (2018.01.16 21:20 신고)

      이재현 // 환경구축 과정을 설명하지 않으셔서 어디서 문제가 생겼는지 파악이 안되고요, 검증과정 곁들여서 글 쓰는 데에도 시간이 많이 걸려서 무의미한 문제증상을 해결하는 데 시간을 추가로 들이고 싶지 않습니다.
      직접 해결해보시고 어디든 피드백 남기시면 다른 분들께 도움이 될거예요.

  • 박준성 (2018.02.04 19:43 신고)

    위와 같이 다 완료했고 서비스 실행까지 완료했는데..마지막 mysql -u root -p 를 입력했는데 실행이 안되네여..ㅜㅜ

    • 짐농 (2018.02.04 20:53 신고)

      박준성 // “그래서 나는 이 증상을 이렇게 해결했다.”까지 이어서 써주시면 감사하겠습니다.

  • 웹 초보자 (2018.03.22 18:22 신고)

    php.ini 내부에
    ;extension=php_mysqli.dll 이 없을 뿐더러
    ;extension=php~~ 로 시작하는 것 자체가 하나도 없습니다..
    혹시 해결방법 아시나요 ?

    • 짐농 (2018.03.22 21:47 신고)

      웹 초보자 // 현재 기준 최신버전인 php 7.2.3의 ini 예제 파일을 보니 언급하신 부분이 사라진 것을 덕분에 확인했습니다. ;extension=mysqli 이걸로 대체되지 않았나 생각합니다.
      언급하신 부분을 가만히 보시면 mysqli 구문을 사용할 수 있도록 봉인을 푸는 과정임을 알 수 있는데요, mysqli 구문은 PHP에서 mysql db를 조작하는 역할을 하기 때문에 대부분의 CMS에서 사용됩니다. 봉인 풀고 잠그고 해가면서 XE/그누보드/워드프레스 등을 테스트해보고 상황에 맞게 대처하세요.
      아파치/PHP/MySQL 모두 버전이 올라가면 설치법이 조금씩 바뀌기도 합니다. 제 글은 참고용으로 활용하고 공식문서를 뼈대로 하는 것을 추천드립니다.

  • ㅇㅇ (2018.03.24 20:36 신고)

    참고가 될 지 모르는 댓글을 남깁니다.(적어도 시간 낭비는 하지 않게...)
    OS, WIN10-64Bit//아파치 2.4.33 //php 7.23//mysql-5.7.21 //비주얼 스튜디오 2017
    3/24일 자 가장 최신 버전으로 모두 다운 받았습니다.

    누락된 코드는 없다는 가정 아래 진행했습니다.
    아파치랑 PHP Mysql 모두 개별적으로는 잘 설치됐습니다.
    *하지만 본문에 있는 test로 mysql 연동을 확인하는 과정에서
    http 500 에러가 발생하며 웹페이지가 응답이 없는 결과가 나타났습니다.

    오류에 대해서 두 가지를 가정하고 접근 했습니다.

    1. 윈도우 방화벽, 네트워크의 문제로 접속이 불가능한 경우

    2. 버전이 업데이트 되며 구동 방법이 바뀐 경우

    3. 나머지는 기타

    두 가지를 확인하기 위해서 다른 컴퓨터에 깔려있는
    이전 버전의 파일과 비교를 하며 진행했습니다.

    1. 80 포트와 3306 포트를 추가하고 방화벽을 모두 해제했습니다. -> (x)
    공유기를 점검 했습니다. -> (x), 극단적으로 다른 PC는 인터넷이 끊긴 상황에서도 내부적으로는 연동이 되기 때문에
    네트워크의 문제는 아예 배제를 했습니다.

    2. 그렇다면 버전이 업데이트 됐는데 기존의 설치 방법을 사용하며 문제가 발생했다는 결론이 나옵니다.
    그리고 phpmyadmin의 로그인 화면에서도 같은 문제가 발생한 것을 보고
    계정에 대한 문제로 좁혀 생각을 해봤습니다. 본문에 있는 설치 과정을 진행하며 계정과 관련된 부분은 admin의 비밀번호를 set 으로 한 게 고작이기 때문에 그 부분을 본문에 나와있는 ALTER USER~ 로 바꿔서 다시 재설치를 해보았습니다. 결과적으로 phpmyadmin은 성공적으로 진행됐지만 여전히 test php 파일들은 500애러가 발생했습니다. phpmyadmin에서 새로운 data를 만들고 도스창에서 root 계정으로 들어가서 데이터를 확인한 결과 분명하게 mysql이 연동이 됐습니다. 이게 왜 이런지... 비슷한 증상이 있으신 분들은 댓글을 달아주시면 감사하겠습니다. 아울러 비슷한 증상을 겪고 계신분들에게 제 댓글이 참고가 됐으면 하네요.

    • 짐농 (2018.03.30 23:34 신고)

      ㅇㅇ // 윈도우10 64비트, 닷넷 3.5 활성화, 비주얼 스튜디오 재배포 패키지 2013, 2017, Apache 2.4.33, PHP 7.2.4, MySQL 5.7.21
      다시 테스트해봐도 본문의 스크린샷과 결과가 다르게 나오지 않는데요.

      가정은 전부 잘못됐습니다.

      80포트 막혔으면 아파치 테스트부터 통과를 못합니다.
      공유기 점검도 무의미한 게, 내부망에서 접속 테스트하면 공유기 방화벽은 거치지 않게 됩니다.
      (localhost로 테스트하라고 본문에 지속적으로 언급한 것은 네트워크 문제를 최대한 배제시키기 위함입니다.)

      set password = password('1111');
      ▲ 이것만 password 항목을 따로 생성하지, 나머지 두 방식은 mysql이 암호를 저장하도록 설계한 기본 공간에 암호를 저장합니다. 결과는 같아요.

      phpmyadmin이 정상구동 되는데 본문의 test 코드가 작동 안된다고요? 말이 안됩니다. 오타 때문에 문제가 생겼을 확률이 높습니다. 본문의 코드는 복붙하지 마시고 직접 쳐서 넣으세요.

    • 500에러일시 (2018.06.13 08:43 신고)

      http 500에러일시에
      아주 높은확률로 스크립트 에럽니다.
      오타가 있을수 있으니 한글자 한글자 자세히 보셔야 되요
      저같은 경우엔 if문의 대괄호를 {가 아닌 (로 잘못쳤더라고요.

  • 정의령 (2018.04.16 17:54 신고)

    안녕하세요 저는 mysql 5.7.21 버전을 설치하는데 마지막 단계빼고는 다 성공했는데 php 라는게 뭔지... php.ini 는 어느위치에서 열수 있는건지 잘 모르겠네요 혹시 php 가 없으면 mysql server 를 정상적으로 사용할 수 없는 건가요?

    저의경우 설치 프로그램을 사용하면 server 설치가 오류나서(visual 때문은 절대아님) 이 방법으로 설치하고 그 다음 workbench 등의 다른것들을 설치프로그램으로 설치할 생각입니다. 이렇게 했을때 문제없을까요?

    • 짐농 (2018.04.16 21:05 신고)

      정의령 // php는 언어입니다. php로 mysql db를 제어하고자 한다면 php 환경설정 파일(php.ini)를 손봐야 하고, 그게 아니면 필요 없습니다.
      workbench라면 gui로 db를 조작하시려는 의도로 보이는데, 말씀하신 것처럼 겹쳐서 깔아보지 않아서 잘 모르겠습니다. 저는 CMS 구동하려고 아파치, php, mysql을 설치한 거라서요.

  • cha (2018.05.05 21:53 신고)

    덕분에 처음으로 해볼 수 있어 대단히 감사드립니다.
    ------------------------
    MySql 연결테스트
    disconnect : 실패
    --------------
    MySQL 연결오류:The server requested authentication method unknown to the client데이터베이스 만들기 오류:
    -----------------
    mysqltest, mysqltest2.php 에서
    이렇게 나옵니다
    성공으로 나올 수 있게
    도와 주시면 감사하겠습니다

    • 짐농 (2018.05.06 10:10 신고)

      cha // 본문에 적은 것 정도밖에 모르겠습니다. 저장시 인코딩을 UTF-8로 해보시라는 말씀밖엔 못 드리겠어요.

    • 초초초 (2018.05.23 23:03 신고)

      MySQL 8.0 버전으로 까니깐 계속 authentication 오류가 뜨고, mysqli_connect 함수 해결을 못했습니다. 아파치, php는 그대로 두고 MySQL8.0을삭제하고 MySQL 5.7.22 버전으로 새로 설치하여 설정 바꿨더니 php, mySQL 연결 잘 되네요!

    • 짐농 (2018.05.24 10:23 신고)

      초초초 // MySQL 8.0 공식 문서를 보니까 mysqli_connect() 함수가 도태되었다고(deprecated) 하네요.
      https://dev.mysql.com/doc/refman/8.0/en/mysql-connect.html
      이 함수 대신 mysql_real_connect() 함수를 쓰라고 하는데, php 구문을 다시 짜게 되면 포스팅에 반영하겠습니다. 혹시라도 먼저 코드를 짜셨다면 귀띔 좀 해주세요.

  • cha (2018.05.06 12:21 신고)

    wordpress 설치까지 완료하였습니다.
    3일 주야 노력한 결과 이루어냈습니다.
    설치를 취소할 수 없어 윈도를 재설치를 4번을 했습니다.
    에라 결과 메시지가 할 때 마다 다르게 나오는 것은
    입력 착오로 생각됩니다. 수정된 php 파일을 저장하여
    다음 차 작업시에 활용하니 에라를 줄인 것 같습니다.
    대단히 감사합니다. 평생 하고 싶었던 작업입니다.

    • Jb (2018.05.06 13:59 신고)

      저도 같은오류가 발생하는데 어떻게 해결하셨는지 알려주실수 있나요?

  • cha (2018.05.06 22:24 신고)

    작업이 안되고 초조하니 무슨 비법이 있거니 생각했는데 작업을 다시 확인하면 빠진 곳이 여러 곳이 있었어요.
    기본대로 빠짐없이 오타없으면 되는 것 같아요

  • 오인조 (2018.05.07 04:02 신고)

    MySql ���� �׽�Ʈ

    Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in C:\Apache24\htdocs\mysqltest.php:3 Stack trace: #0 {main} thrown in C:\Apache24\htdocs\mysqltest.php on line 3

    이런 오류가 계속 뜨는데 무슨 이유인지 모르겠어요ㅜㅜ php7.0.30 설치했어요 mysqltest.php 화면 띄우기 전까지는 다 괜찮았거든요ㅜㅜ무슨 문제일까요....???

    • 짐농 (2018.05.07 12:48 신고)

      오인조 // php파일 저장하실 때 인코딩을 UTF-8로 해보세요.

  • 블라블라 (2018.05.08 00:52 신고)

    mysql 연결테스트

    Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in C:\Users\~~\Apache24\htdocs\test.php:7 Stack trace: #0 {main} thrown in C:\Users\~~~
    php파일 저장할 때 인코딩으로 utf-8로 하고 위에 설명처럼 extension을 풀어줬는데도 이러는데ㅜㅜㅜㅜㅜㅜ무슨문제인지 알려주실수있나요(~~는 이름입니다..)

    • 짐농 (2018.05.24 10:25 신고)

      블라블라 // MySQL 8.0 공식 문서를 보니까 mysqli_connect() 함수가 도태되었다고(deprecated) 하네요.
      https://dev.mysql.com/doc/refman/8.0/en/mysql-connect.html
      이 함수 대신 mysql_real_connect() 함수를 쓰라고 하는데, php 구문을 다시 짜게 되면 포스팅에 반영하겠습니다. 혹시라도 먼저 코드를 짜셨다면 귀띔 좀 해주세요.
      (이 포스팅은 MySQL 5.7 버전 관련 글이니까... 다소 늦어지더라도 이해를 해주세요.)

  • 경은 (2018.05.26 02:38 신고)

    mysql 5.7.22 버전 다운받고
    php 7.0.30 버전 다운 받았습니다.
    코드에도 오타가 없고 mysqltest.php 파일 저장할 때에도 UTF-8로 저장했는데
    Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in C:\Apache24\htdocs\mysqltest.php:3 Stack trace: #0 {main} thrown in C:\Apache24\htdocs\mysqltest.php on line 3

    이런 오류가 뜨네요...ㅠㅠ
    혹시 어떻게 해결해야 하는지 알 수 있을까요??

    • 짐농 (2018.05.26 16:32 신고)

      경은 // 5.7이면 코드에 오타가 있을 확률이 가장 높습니다. 심지어 유니코드까지 틀리지 말아야 합니다.

  • 린이 (2018.05.29 16:01 신고)

    2018-05-29T05:09:18.724081Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-05-29T05:09:20.525720Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2018-05-29T05:09:20.829516Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2018-05-29T05:09:21.000171Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 7214fef3-62fe-11e8-b5ac-309c230bf8b9.
    2018-05-29T05:09:21.032407Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2018-05-29T05:09:21.112244Z 1 [Note] A temporary password is generated for root@localhost: y,r>+pICw0th
    2018-05-29T05:15:49.633461Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-05-29T05:15:49.633534Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
    2018-05-29T05:15:49.633823Z 0 [Note] MySQL (mysqld 5.7.22) starting as process 9364 ...
    2018-05-29T05:15:49.640909Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
    2018-05-29T05:15:49.641364Z 0 [Note] InnoDB: Uses event mutexes
    2018-05-29T05:15:49.641627Z 0 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
    2018-05-29T05:15:49.642086Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2018-05-29T05:15:49.642644Z 0 [Note] InnoDB: Number of pools: 1
    2018-05-29T05:15:49.642998Z 0 [Note] InnoDB: Not using CPU crc32 instructions
    2018-05-29T05:15:49.654394Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
    2018-05-29T05:15:49.660414Z 0 [Note] InnoDB: Completed initialization of buffer pool
    2018-05-29T05:15:49.764190Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
    2018-05-29T05:15:50.112360Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
    2018-05-29T05:15:50.112995Z 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
    2018-05-29T05:15:50.263036Z 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB.
    2018-05-29T05:15:50.265421Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
    2018-05-29T05:15:50.265869Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
    2018-05-29T05:15:50.266387Z 0 [Note] InnoDB: Waiting for purge to start
    2018-05-29T05:15:50.317085Z 0 [Note] InnoDB: 5.7.22 started; log sequence number 2589949
    2018-05-29T05:15:50.317796Z 0 [Note] InnoDB: Loading buffer pool(s) from C:\mysql\data\ib_buffer_pool
    2018-05-29T05:15:50.317809Z 0 [Note] Plugin 'FEDERATED' is disabled.
    2018-05-29T05:15:50.341429Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
    2018-05-29T05:15:50.342170Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
    2018-05-29T05:15:50.342820Z 0 [Note] IPv6 is available.
    2018-05-29T05:15:50.343107Z 0 [Note] - '::' resolves to '::';
    2018-05-29T05:15:50.343399Z 0 [Note] Server socket created on IP: '::'.
    2018-05-29T05:15:50.377545Z 0 [Note] InnoDB: Buffer pool(s) load completed at 180529 14:15:50
    2018-05-29T05:15:50.475754Z 0 [Note] Event Scheduler: Loaded 0 events
    2018-05-29T05:15:50.476184Z 0 [Note] MySQL: ready for connections.
    Version: '5.7.22' socket: '' port: 3306 MySQL Community Server (GPL)
    2018-05-29T05:17:13.374250Z 2 [Note] Access denied for user 'root'@'localhost' (using password: YES)
    2018-05-29T06:07:27.749990Z 3 [Note] Access denied for user 'root'@'localhost' (using password: YES)
    2018-05-29T06:15:50.541658Z 4 [Note] Access denied for user 'root'@'localhost' (using password: YES)
    2018-05-29T06:34:09.231579Z 0 [Note] MySQL: Normal shutdown

    2018-05-29T06:34:09.232343Z 0 [Note] Giving 0 client threads a chance to die gracefully
    2018-05-29T06:34:09.232609Z 0 [Note] Shutting down slave threads
    2018-05-29T06:34:09.233592Z 0 [Note] Forcefully disconnecting 0 remaining clients
    2018-05-29T06:34:09.234145Z 0 [Note] Event Scheduler: Purging the queue. 0 events
    2018-05-29T06:34:09.234700Z 0 [Note] Binlog end
    2018-05-29T06:34:09.238323Z 0 [Note] Shutting down plugin 'ngram'
    2018-05-29T06:34:09.238640Z 0 [Note] Shutting down plugin 'partition'
    2018-05-29T06:34:09.238955Z 0 [Note] Shutting down plugin 'BLACKHOLE'
    2018-05-29T06:34:09.239160Z 0 [Note] Shutting down plugin 'ARCHIVE'
    2018-05-29T06:34:09.239351Z 0 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
    2018-05-29T06:34:09.239627Z 0 [Note] Shutting down plugin 'MRG_MYISAM'
    2018-05-29T06:34:09.239835Z 0 [Note] Shutting down plugin 'MyISAM'
    2018-05-29T06:34:09.240045Z 0 [Note] Shutting down plugin 'INNODB_SYS_VIRTUAL'
    2018-05-29T06:34:09.240297Z 0 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
    2018-05-29T06:34:09.240528Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
    2018-05-29T06:34:09.240765Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
    2018-05-29T06:34:09.241001Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
    2018-05-29T06:34:09.241225Z 0 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
    2018-05-29T06:34:09.241444Z 0 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
    2018-05-29T06:34:09.241666Z 0 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
    2018-05-29T06:34:09.241905Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
    2018-05-29T06:34:09.242138Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
    2018-05-29T06:34:09.242361Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
    2018-05-29T06:34:09.242593Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
    2018-05-29T06:34:09.242826Z 0 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
    2018-05-29T06:34:09.243043Z 0 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
    2018-05-29T06:34:09.243279Z 0 [Note] Shutting down plugin 'INNODB_FT_DELETED'
    2018-05-29T06:34:09.243500Z 0 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD'
    2018-05-29T06:34:09.243748Z 0 [Note] Shutting down plugin 'INNODB_METRICS'
    2018-05-29T06:34:09.243961Z 0 [Note] Shutting down plugin 'INNODB_TEMP_TABLE_INFO'
    2018-05-29T06:34:09.244197Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
    2018-05-29T06:34:09.244439Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
    2018-05-29T06:34:09.244675Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
    2018-05-29T06:34:09.244902Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET'
    2018-05-29T06:34:09.245147Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
    2018-05-29T06:34:09.245378Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
    2018-05-29T06:34:09.245606Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM'
    2018-05-29T06:34:09.245816Z 0 [Note] Shutting down plugin 'INNODB_CMP_RESET'
    2018-05-29T06:34:09.246052Z 0 [Note] Shutting down plugin 'INNODB_CMP'
    2018-05-29T06:34:09.246255Z 0 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
    2018-05-29T06:34:09.246474Z 0 [Note] Shutting down plugin 'INNODB_LOCKS'
    2018-05-29T06:34:09.246680Z 0 [Note] Shutting down plugin 'INNODB_TRX'
    2018-05-29T06:34:09.246881Z 0 [Note] Shutting down plugin 'InnoDB'
    2018-05-29T06:34:09.247192Z 0 [Note] InnoDB: FTS optimize thread exiting.
    2018-05-29T06:34:09.247482Z 0 [Note] InnoDB: Starting shutdown...
    2018-05-29T06:34:09.348207Z 0 [Note] InnoDB: Dumping buffer pool(s) to C:\mysql\data\ib_buffer_pool
    2018-05-29T06:34:09.349578Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 180529 15:34:09
    2018-05-29T06:34:10.144864Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2589977
    2018-05-29T06:34:10.145417Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
    2018-05-29T06:34:10.145692Z 0 [Note] Shutting down plugin 'MEMORY'
    2018-05-29T06:34:10.145885Z 0 [Note] Shutting down plugin 'CSV'
    2018-05-29T06:34:10.146068Z 0 [Note] Shutting down plugin 'sha256_password'
    2018-05-29T06:34:10.146302Z 0 [Note] Shutting down plugin 'mysql_native_password'
    2018-05-29T06:34:10.146718Z 0 [Note] Shutting down plugin 'binlog'
    2018-05-29T06:34:10.147491Z 0 [Note] MySQL: Shutdown complete

    2018-05-29T06:34:11.246369Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-05-29T06:34:11.246437Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
    2018-05-29T06:34:11.246722Z 0 [Note] MySQL (mysqld 5.7.22) starting as process 9632 ...
    2018-05-29T06:34:11.254427Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
    2018-05-29T06:34:11.254963Z 0 [Note] InnoDB: Uses event mutexes
    2018-05-29T06:34:11.255267Z 0 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
    2018-05-29T06:34:11.255619Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2018-05-29T06:34:11.256183Z 0 [Note] InnoDB: Number of pools: 1
    2018-05-29T06:34:11.256562Z 0 [Note] InnoDB: Not using CPU crc32 instructions
    2018-05-29T06:34:11.259128Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
    2018-05-29T06:34:11.264838Z 0 [Note] InnoDB: Completed initialization of buffer pool
    2018-05-29T06:34:11.330440Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
    2018-05-29T06:34:11.462810Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
    2018-05-29T06:34:11.463434Z 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
    2018-05-29T06:34:11.623537Z 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB.
    2018-05-29T06:34:11.625881Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
    2018-05-29T06:34:11.626316Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
    2018-05-29T06:34:11.626854Z 0 [Note] InnoDB: Waiting for purge to start
    2018-05-29T06:34:11.694522Z 0 [Note] InnoDB: 5.7.22 started; log sequence number 2589977
    2018-05-29T06:34:11.695207Z 0 [Note] InnoDB: Loading buffer pool(s) from C:\mysql\data\ib_buffer_pool
    2018-05-29T06:34:11.695245Z 0 [Note] Plugin 'FEDERATED' is disabled.
    2018-05-29T06:34:11.748989Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
    2018-05-29T06:34:11.749629Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
    2018-05-29T06:34:11.750282Z 0 [Note] IPv6 is available.
    2018-05-29T06:34:11.750705Z 0 [Note] - '::' resolves to '::';
    2018-05-29T06:34:11.751020Z 0 [Note] Server socket created on IP: '::'.
    2018-05-29T06:34:11.813369Z 0 [Note] InnoDB: Buffer pool(s) load completed at 180529 15:34:11
    2018-05-29T06:34:11.872205Z 0 [Note] Event Scheduler: Loaded 0 events
    2018-05-29T06:34:11.872733Z 0 [Note] MySQL: ready for connections.
    Version: '5.7.22' socket: '' port: 3306 MySQL Community Server (GPL)
    2018-05-29T06:36:49.246906Z 2 [Note] Access denied for user 'root'@'localhost' (using password: YES)
    2018-05-29T06:49:38.019417Z 3 [Note] Access denied for user 'root'@'localhost' (using password: NO)
    2018-05-29T06:49:59.027370Z 4 [Note] Access denied for user 'root'@'localhost' (using password: YES)
    2018-05-29T06:53:17.003102Z 5 [Note] Access denied for user 'root'@'localhost' (using password: YES)

    -------------------------------------------------------------------------------------------------------------------

    안녕하세용.. 서비스에서 실행중까지 다 성공시키고
    명령 프롬프트에서 mysql -u root -p 입력 후 ENTER PASSWORD에서
    메모장에 root@localhost: y,r>+plCw0th 되어있어서 포스팅대로 임시 비밀번호 입력했더니

    비밀번호가 맞지 않는다고 자꾸 뜹니다ㅠ 왜그런지 모르겠네요....

    남아있는 파일 다지우고 시스템에있는것도 다 지우고 새로 해봐도 안되네요ㅠ
    회사컴퓨터로 하는데..
    기존에 있는 서버랑 상관이 있는건가요? 왜 비밀번호가 다르다는건지 모르겠네요ㅠ

    댓글읽다 보니 파워셸에서 안된다는 말이 있던데 명령프롬프트가 아니라 그런가요,

    다 설치 실행잘됐고 비번만 틀리다고 계속 나오는데ㅜ

    • 짐농 (2018.05.29 18:42 신고)

      린이 // 가장 의심되는 부분은 명령프롬프트를 관리자 권한으로 실행했는지입니다. (경험상) 파워셸에서 안되는 것 맞고, 파워셸 대신 명령프롬프트 뜨도록 하는 옵션이 윈10 설정에 있었던 것으로 기억합니다.
      기존에 세팅하셨던 서버가 있다면 공식문서를 해독 가능하신 레벨인 듯한데, 저한테 가르침을 주셔야죠.ㅠㅠ 많이 도와주세요.

    • 린이 (2018.06.01 12:12 신고)

      제가 개발자가 아니고 퍼블이라..ㅠㅠ 명령프롬프트로 했더니 성공^^ 감사합니다ㅠ 이번에 모바일 청첩장 제손으로 아예 만들어보려고 공부 하고있거든용

  • kim (2018.06.10 13:54 신고)

    안녕하세요! 따라하다가 두 군데에서 막혔는데
    1. db연결 테스트 하는 부분에서
    MySQL연결 테스트
    Connect:성공
    까지만 나오고 아래 버전 정보는 나오지 않더라구요
    2. phpMyAdmin에서도 로그인이 안됐어요. 맞는 비밀번호를 입력했는데도 로그인이 실패했어요

    그래서 확인해보니 mysql 버전 설치를 잘못했더라구요
    https://dev.mysql.com/downloads/mysql/ 이 링크에 들어가서
    바로 그 페이지에 있는 mysql community server 8.0.11을 다운 받았었는데
    그걸 uninstall하고 오른쪽에 있는 Looking for previous GA versions? 아래에 있는
    MySQL Community Server 5.7버전으로 다시 재 설치해서 해보니 제대로 됐어요!

    감사합니당 :) 앞으로도 좋은 글 잘 부탁드려요.

    • 짐농 (2018.06.10 18:51 신고)

      kim // 카이스트 FTP서버 주소를 본문에 적어놨었는데, MySQL 공식 홈페이지에서는 알아서들 받으실 것으로 예상했었습니다.
      kim님 댓글 보고 느낌이 쎄~ 해서 본문에 추가해 놨습니다. 피드백 감사해요.

      phpMyAdmin 제대로 안 돌아가는 원인을 누가 제공했는지 굳이 따지자면... MySQL 측입니다(본문에 스샷 추가했음). 얘네가 치명적인 버그를 달고 출시할 때가 종종 있어요.

  • irakla (2018.06.24 23:58 신고)

    이쪽에 아무것도 모르는 상태에서
    깔지말라고 하신 최신버전 mysql 8.0.11을 깔고 연결테스트 코드를 실행해봤다가 실패로 뜨는 바람에, 성공하기 위해 험난한 과정을 겪었습니다.

    mysqli_connect함수가 정상적인 파라미터를 가지고있음에도 실패하는 원인으로는
    mysql의 authentication plugin이 8.0.11버전 부로 mysql_native_password보다 더 풀기 어려운 caching_sha2_password로 바뀌면서
    비밀번호의 암호화방식이 바뀜에 따라 문제가 되는 것 같습니다.
    (잘 모르는 상태에서 검색과 결과만으로 추정한 거라 뭐라 쉽게 표현이 안되는점, 정확하지 않을 수 있는 점 양해부탁드립니다.)

    당장에 해결해본 방법으로, sql서버에서 root계정의 암호화방식을 바꿈으로써 해결하였습니다.

    ALTER USER root@localhost
    IDENTIFIED WITH mysql_native_password
    BY '이전과 동일한 비밀번호';

    mysql서버에서 위의 쿼리를 입력하고 나서,
    여기서 나온 연결테스트 코드가 정상적으로 실행되었습니다.

    • 짐농 (2018.06.25 09:22 신고)

      irakla // 아, 보안을 기존 수준으로 낮추는 식으로 임시 대처할 수 있군요. 팁 감사합니다.
      저는 mysql이 php에 맞춰지든 php가 mysql을 지원하든 정식으로 해결될 때까지 기다려 보려고요.

  • park (2018.07.01 09:56 신고)

    감사합니다.

  • wozhidao (2018.07.03 11:39 신고)

    MySql 연결 테스트

    Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in C:\Apache24\htdocs\mysqltest.php on line 3

    Warning: mysqli_connect(): (HY000/2054): The server requested authentication method unknown to the client in C:\Apache24\htdocs\mysqltest.php on line 3
    disconnect : 실패

    Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\Apache24\htdocs\mysqltest.php on line 6

    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\Apache24\htdocs\mysqltest.php on line 7

    자꾸 이런 오류 뜨는데 어떻게하나요

    마지막에 php 파일 테스트 장면입니다..

    • wozhidao (2018.07.03 14:42 신고)

      해결했습니다.

      저는 윈도우를 다시 깔고 해결하였습니다.

      이러한 오류가 알아본바..

      이전에 자꾸 깔고 삭제하고 그위치에 재설치를 하면 이러한 오류가 뜨는거같습니다.

    • 짐농 (2018.07.03 21:47 신고)

      wozhidao // 뭔가 느낌이 이상한데 해결되어 다행이네요. 피드백 감사합니다.

  • 해결 (2018.07.20 15:44 신고)

    먼저 이렇게 상세한 포스팅으로 APM 서버 구축에 도움 주신 짐농님께 너무나 감사합니다.
    더불어 mysqli_connect문제로 난항을 겪고 계신 여러분들 짐농님의 코드에서 본인의 오타를 발견하지 못하셨다면,
    아파치 폴더의 httpd.conf 파일에서 PHPIniDir 의 경로를 제대로 적어놓으셨는지도 확인해보시면 좋을 것 같습니다.
    저 같은 경우는 거기에서 오타가 있었네요. 오타 수정 후 php.ini-production파일 이름을 php.ini로 바꾸고, 아파치 재시작 -> local/phpinfo.php 찍어보니 Loaded Configuration File에 ini파일이 올라오는 것을 확인할 수 있었습니다.

    위에 Loaded Configuration File 경로 확인할 수 있도록 댓글 달아주신 그 분께도 감사합니다.
    다른 분들께 도움이 될까 싶어 저도 여기에 댓글달아둡니다 ^^ 좋은 하루 되세요!

    • 짐농 (2018.07.21 10:12 신고)

      해결 // 실수할 만한 부분을 짚어주셔서 감사합니다. 이런 댓글 좋네요!

★ 댓글을 남겨주시면 감사하겠습니다. ★