Loading...
(3초쯤...)

[윈도우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데이터가 저장되길 원하는 공간입니다. 포트까지가 (제일) 기본적인 사항이라 생각하고, 추가를 원하는 항목이 있다면 레퍼런스 매뉴얼 뒤져서 더하면 됩니다.ㅋ

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

 

※ 2019. 09. 27. 엄청헤맸다 님 제보

위의 설정대로 구성 후 아래의 DB 생성 테스트를 진행했지만 data폴더 안에 파일들이 생성되지 않는다? 이게 InnoDB 관련 문제인 것 같다? 그러면 my.ini 설정파일에 아래의 옵션을 추가하면 된다고 합니다.

innodb_flush_method=normal

 

이제 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'];

?>

 

▲ 안된다는 피드백이 많아서 취소선 처리합니다.

▼ (2022. 01. 23. 추가) "웹공부중인 중딩"님께서 알려주신 코드입니다. 작동한다고 하십니다.

 

<?php

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

$host = 'localhost';

$user = 'root';

$pw = '비밀번호';

$dbName = 'test';

$mysqli = new mysqli($host, $user, $pw, $dbName);

 

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

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

?>

 

그리고 웹브라우저 주소창에 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 버전까지만 유효)

 

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

 

[우분투 18.04 데스크톱] LAMP : MariaDB 설치과정 정리(MySQL 대신)

[우분투 18.04 데스크톱] LEMP : MariaDB 설치과정 정리(MySQL 대신)

①광고 차단 플러그인 해제 후 새로고침(F5)
②글주소 복사 ▶ Ctrl+Shift+N(시크릿탭) ▶ 붙여넣고 엔터

① 또는 ②의 방법으로 본문을 볼 수 있습니다.
(Please turn off AdBlock Plug-in.)


p.s. 광고에도 여러분이 관심을 가질만한 정보가 녹아있을 수 있습니다.

( ※ 내가 애드블록 해제를 권유하는 이유 )


  • 이전 댓글 더보기
  • 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 신고)

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

    • 와진짜 (2020.05.08 20:32)

      와 진짜 감사합니다 한시간 넘게 헤매다가 자포자기 한 심정으로 댓글 읽어보다가 덕분에 해결했어요 아 사랑해요 어디사세요 그쪽으로 절 3000번하겠습니다 앞으로 오줌쌀때 그 쪽으로 안쌀게요

  • 발챙이 (2019.03.13 00:16)

    mysql 버전 업 후 셋팅방법이 달라졌는 줄 몰랐네요.. 진작에 여기서 글 확인할 걸 그랬습니다 ㅎㅎ
    덕분에 잘 설치해서 사용합니다~! 감사합니다(꾸벅)

    • 흔남. (2019.03.13 21:15 신고)

      발챙이 // mysql 8.0 버전을 php가 지원하면... 그 때 수정사항 반영할게요.

  • phpmyadminㅜㅜㅠ (2019.06.27 20:01)

    MySql 커넥션 테스트
    disconnect : fail

    여기까지 나오고, disconnect가 뜨는데요
    비밀번호는 맞구요
    $db = mysqli_connect("localhost", "root", "1234", "test");
    이부분에서 $db에 false가 들어가는것 같은데 문제가 있나요?

    mysql이 미리 깔려있어서 mariadb로 사용중입니다

    • 흔남. (2019.06.27 20:36 신고)

      phpmyadminㅜㅜㅠ // MySQL 버전 확인해보세요. 8.0으로 깔았다면 php 7.3까지 MySQL 8.0의 기본 보안 설정을 지원하지 못해서 그런 겁니다. MySQL 5.7이면 본문대로 안 따라하셔서 그런 겁니다. 다시 점검해보세요.

      마리아DB는 윈도우에서 안 돌려봐서 말씀드리지 못하겠습니다. 저도 우분투에선 마리아DB 쓰는데... ^^;;

  • 김재윤 (2019.08.15 23:43)

    <?php

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

    $db = mysqli_connect("localhost", "root", "1234", "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 500 에러 뜨는데 어떻하죠?

    • 흔남. (2019.08.16 12:40 신고)

      김재윤 // 본인 PC 문제는 본인이 해결. 못하겠으면 근처 PC 수리점이나 저한테 의뢰하시면 되겠습니다.

  • 와 진짜 엄청헤맸다ㅠㅠ (2019.09.27 16:37)

    정말 깔끔하게 정리하셔서 많이 배웠습니다 감사합니다. 저는 맥북에서 윈도우 환경을 쓰고 있어서 my.ini에 innodb_flush_method=normal도 추가를 해줘야 data폴더 안에 정상적으로 파일들이 생성이 되더라구요 이것도 추가해주시면 감사하겠습니다!!

    • 흔남. (2019.09.27 21:46 신고)

      엄청헤맸다 // InnoDB 관련 에러가 뜨는 경우가 있단 말이지요? 피드백 감사합니다. 추가해 놓겠습니다.

  • qlqlqlqlq (2019.10.14 19:04)

    마지막에 mysqltest.php 실행하는데 첫번째 줄 'MySql 연결 테스트'만 나와요.
    어떻게 해야하죠....???

    • 흔남. (2019.10.14 19:29 신고)

      qlqlqlqlq // 본인이 뭘 잘못 따라했는지 되짚어보시면 됩니다.

  • 뿐빵 (2019.11.13 16:09)

    MySQL을 깔고나니 명령 프롬프트에서 httpd.exe -k start를 쳤는데 httpd.exe는 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 뜹니다. 이 외에도 install restart 전부 그렇게 뜹니다. ㅠㅠ 어떻게 해야 할까요😅

    • 흔남. (2019.11.13 16:11 신고)

      뿐빵 // 파워쉘 말고 명령프롬프트(관리자)로...

  • 익명 (2020.02.16 22:32)

    비밀댓글입니다

  • HEL (2020.02.20 00:40)

    MySQL으로 다른 프로그램에 연동을 시도하려는 학생입니다.
    MySQL을 zip으로 깔지를 않고 installer를 통해 MySQL Database 관리 프로그램을 다운받고 하고 있습니다.
    php, Apache24는 블로그를 보고 성공했지만 MySQL을 zip으로 하지 않고 installer로 MySQL을 관리하고 있다보니
    MySQL의 부분에서 막히게 되었습니다. 현재 애써서 해보았지만, cmd는 모두 됩니다만 my.ini 파일을 넣지 않아서
    인지 테스트는 역시 실패하여 여쭈어보려고 합니다.

    MySQL을 꼭 installer가 아닌 zip 파일을 다운받아 해야 하나요? 혹시 맞다면 그 이유도 알수 있을까요?
    죄송합니다 부탁드립니다.

    • 흔남. (2020.02.20 00:55 신고)

      HEL // 설치하신 MySQL 버전은?

    • HEL (2020.02.24 20:07)

      MySQL 8.0입니다 최신버전으로 관리하고 있습니다.

    • 흔남. (2020.02.24 20:44 신고)

      HEL // PHP가 MySQL 8의 보안 정책을 지원하지 않아서 생기는 문제입니다.
      구글링하셔서 MySQL 8의 보안 수준을 MySQL 5.7 수준으로 낮추거나, MySQL 8 삭제 후 5.7로 설치하세요.
      (저는 첫번째 해결책을 추천하지 않습니다. PHP가 MySQL 8 버전을 지원하면 포스팅 다시 할 계획이고요.)

    • HEL (2020.02.27 22:50)

      MySQL installer 에서 보안을 5.7 수준으로 낮출 수 있게 설정할 수 있는 기능이 있더라고요! 그 다음은 다행히 성공했습니다!
      어떤 문제인지 가르쳐주셔서 수월하게 했습니다 감사합니다!

  • 승현 (2020.02.21 17:05)

    다른것은 다되는데 http://localhost/mysqltest.php 이부분에서 아래메세지가 뜨고있습니다.
    도움부탁드립니다~

    Parse error: syntax error, unexpected '$result' (T_VARIABLE), expecting identifier (T_STRING) in C:\Apache24\htdocs\mysqltest.php on line 6

    sql버전은 5.7.22 입니다.

    • 흔남. (2020.02.21 17:50 신고)

      승현 // 이런 것은 정식으로 의뢰하셔야 할 것 같습니다. 예전에 한 번 봐드린 적이 있는데, php 설정부터 꼬여 있어서 시간을 많이 썼습니다.
      아무튼, 의뢰 원하시면 메일을 주세요(제 시간을 돈으로 사세요.ㅋ).

    • 칠칠이 (2020.03.01 11:57)

      $result 앞에 \가 쓰여 있을겁니다. 그걸 지우세요. 그럼 해결됩니다.

    • 흔남. (2020.03.01 13:56 신고)

      칠칠이 // MathJax 수식 표현 스크립트의 링크가 깨지는 바람에 본문의 소스코드 표현이 틀어졌던 것 같습니다. 해당 문자들을 유니코드가 다르면서 비슷하게 보이는 것으로 교체하여 문제를 해겼했습니다.

      지적해주셔서 감사합니다.

  • 설치중 (2020.07.01 00:40)

    안녕하세요. 현재 mysql 5.6.18 버전으로 설치 중입니다.

    system DB 설정을 하면 아래와 같은 에러 메세지가 뜹니다.

    C:\windows\system32>mysql.exe --initialize
    mysql: [ERROR] unknown variable 'basedir=C:/mysql'

    my.ini 파일 설정은 하기와 같습니다.

    [mysql]
    # set basedir to your installation path
    basedir=C:/mysql
    # set datadir to the location of your data directory
    datadir=C:/mysql/data
    port=3306

    어느 부분을 수정하면 되는지 답변 부탁 드립니다.

    감사합니다.

    • 흔남. (2020.07.01 00:57 신고)

      댓글 작성하고 지우시는 것을 보면 자체해결 가능한 레벨인 것 같습니다. 본문+댓글 참고하세요.

    • 설치중 (2020.07.02 00:51)

      감사합니다.~ system DB 설정 시 명령 프롬프트(관리자)에서 mysqld.exe -- initialize를 해야 하는데 mysql.exe --initialize로 타이핑을 했네요.ㅜㅜ 이건 해결했습니다.

      그런데 mysql 접속을 위해 명령프롬프트(관리자)에서 mysql -u root -p 입력 후 엔터를 치면 어제와 같은 에러 메세지가 뜨네요...

      [ERROR] unknown variable 'basedir=C:/mysql'

      제가 경로 설정시 잘못한게 있을까요? 저녁부터 지금까지 못찾고 있네요..ㅜㅜ


    • 흔남. (2020.07.02 10:36 신고)

      제 추측으로만 해결할 수 있는 케이스가 아닌 것 같습니다. 본문대로 따라해 보시고, 원격으로 도움 받고 싶다면 메일을 주세요(무료는 아닙니다. 비싸진 않습니다.).

    • 설치중 (2020.07.03 16:11)

      안녕하세요. 어디서 잘못 되었는지 모르겠지만.... 처음부터 다시 설치를 하니 정상적으로 동작을 합니다. SQL 버전은 5.7.18입니다. 도움주셔서 감사합니다.~~

  • 땅차니 (2020.08.04 11:54)

    유용한정보 너무나 감사드립니다 ㅠㅠ 근데 쭉 잘 따라하다가 mysqltest.php 불러오는 부분에서 페이지가 작동하지 않습니다. 라고 뜹니다..ㅠㅠ 어떤 문제일까요

    • 흔남. (2020.08.04 15:47 신고)

      설마, 한두 줄의 댓글로 제가 원인파악을 할 수 있을 거라고 생각하시는 것은 아니죠?
      본문을 똑같이 따라하시거나, 저처럼 구현 과정 전부를 자세하게 적어서 문의해 주세요.

  • 고진성 (2020.08.04 18:15)

    혹시 mysqltest.php 테스트 해보실 때 "웹 사이트에서 페이지를 표시할 수 없습니다... HTTP500
    이렇게 나오면서 그 다음을 진행하지 못하시는 분이 계시면, 아래 문장으로 테스트 해보세요.
    저는 위 에러에 대해서 해결책을 못 찾아서 아래 문장으로 테스트를 완료했습니다. 실력도 아직 미진하고 컴 손 놓은지가 20년이 넘어서, 다시 해보려니 정말 어렵군요..암튼 해보세요.
    <?php
    echo "MySql 연결 테스트<br>";
    $link=mysqli_connect("localhost ","root","1111", "test ");
    if($link->connect_errno){
    echo '연결실패. : '.$link->connect_error.'';
    }else{
    echo '연결성공!'.'<br>';
    }
    ?>

  • 시미 (2020.12.07 08:26)

    안녕하세요, 우선 잘 모르는 분들을 위해 상세하게 포스팅을 남겨 주셔서 감사합니다!
    다름이 아니라, 본문대로 차근차근 따라하다가 php와 mysql 연동 부분에서 실패한 것 같습니다..
    일주일 내내 방법을 찾아봤지만 쓰던 PC도 고장나는 바람에 수리도 하고 왔네요 ㅎㅎ;;
    mysqltest.php 파일을 작동시키면 'MySql 연결 테스트'라는 글 한 줄만 나옵니다.
    혹시 해결방안을 구할 수 있을까요?

    (+내용 조금 더 추가해보겠습니다::
    에러가 발생한 부분을 찾아보면,
    PHP Fetal error: Uncaught Error: Call to undefined function mysqli_connect() 입니다..! 윈도10, php 7.4.13, mysql 5.7.32 입니다,,)

    • 흔남. (2020.12.07 13:12 신고)

      역순으로 지우면 완전삭제가 되기 때문에, 컴퓨터가 망가졌다고 하소연하시는 것은 지나친 것 같습니다.
      테스트를 phpmyadmin 설치로 해보시죠.

  • 권설빔 (2021.03.25 21:40)

    <?php
    echo "MySql 연결 테스트<br>";
    $adf = mysqli_connect("localhost","root","1052","test");
    if($adf){echo "connect : 성공<br>";
    else {echo "disconnect : 실패<br>";}
    $result = mysqli_query($adf, 'SELECT VERSION() as VERSION');
    $data = mysqli_fetch_assoc($result);
    echo $data['VERSION'];
    ?>

    이 부분에서
    Parse error: syntax error, unexpected '=' in C:\Apache24\htdocs\asdf.php on line 3
    이런 오류가 뜨는데 어떻게 해야 할까요 ?

  • 권설빔 (2021.03.28 15:46)

    mysqli_connect()
    함수를 찾을 수 없다네요...
    어떡하나요 ??



    <?php
    echo "MySql 연결 테스트<br>";
    $adb = mysqli_connect("localho st","root","1052","test");
    if($db){echo "connect : 성공<br>";}
    else{echo "disconnect : 실패<br>";}
    $result = mysqli_query($adf, 'SELECT VERSION() as VERSION');
    $data = mysqli_fetch_assoc($result);
    echo $data['VERSION'];
    ?>



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

    • 흔남. (2021.03.28 17:00 신고)

      저는 스샷까지 올리면서 되는 모습을 보여드렸으니, 할만큼 했다고 봅니다.
      스스로 방법을 찾아보세요.

  • 권설빔 (2021.03.28 18:44)

    관리자의 승인을 기다리고 있는 댓글입니다

  • 웹공부중인 중딩 (2022.01.23 13:28)

    <?php

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

    $db = mysqli_connect("localhost", "root", "parksua", "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'];

    ?>

    해서 php 파일 만들구 난다음 홈페이지에서 열어보니까
    HTTP ERROR 500 << 에러 뜨는데 해결할수있는 방법이 있을까영....?

    mysql 버전 5.7.37
    php 버전 8.0.15 입니다.

    • 흔남. (2022.01.23 15:01 신고)

      언급하신 코드에 있는 mysql 함수가 deprecated된 것 같은데, 테스트 없이 진행하시거나 다른 블로그 글들의 테스트코드를 이용해보세요.

    • 웹공부중인 중딩 (2022.01.23 16:33)

      <?php

      $host = 'localhost';

      $user = 'root';

      $pw = 'pw';

      $dbName = 'test';

      $mysqli = new mysqli($host, $user, $pw, $dbName);



      if($mysqli){

      echo "MySQL 접속 성공";

      }else{

      echo "MySQL 접속 실패";

      }

      ?>
      이렇게 해서 됬습니당 감사합니다!

    • 흔남. (2022.01.23 18:05 신고)

      알려주셔서 감사합니다. 본문에 추가해 놓을게요.

댓글!! 작은 정보를 남겨주세요. 다른 분들께 큰 도움이 됩니다. ★