일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 맥
- centos
- MachineLearning
- linux
- react
- jest
- Android
- Chrome
- TensorFlow
- webpack
- PYTHON
- MAC
- 센토스
- ReactNative
- unittest
- 네트워크
- xcode
- 리눅스
- node
- 티스토리챌린지
- VirtualBox
- qunit
- vsCode
- androidstudio
- localserver
- IOS
- 개발
- 오블완
- build
- Today
- Total
로메오의 블로그
MAMP 설치하기 [Windows] 본문
위 사이트에서 MAMP를 다운로드해서 설치하고, 서버를 구동합니다.
DBeaver에 mysql 드라이버 설치
dev.mysql.com/downloads/connector/j/
Platform Independent를 선택하고 zip 파일을 다운로드하고 압축해제합니다.
Edit Driver Settings를 누릅니다.
드라이버 경로를 지정합니다.
접속 테스트하고 DB연결합니다.
PHP - Mysql 연결
MAMP > Preference에서 Document Root 경로를 확인합니다.
Document Root 경로에 php 파일을 생성합니다.
현재 PHP7 버전이 설치되어있는데
저는 PHP5 버전대를 사용해야해서 mysql-wrapper.php를 사용하겠습니다.
github.com/OOPS-ORG-PHP/mysql-extension-wrapper
여기서 mysql-wrapper.php를 다운로드해서 document root 폴더에 넣습니다.
<?
extract($_POST);
extract($_GET);
header("Content-Type:text/html;charset=utf-8");
header("Content-Type:application/json");
require_once 'mysql-wrapper.php';
$conn = mysql_connect('localhost', 'root', 'root');
$db = mysql_select_db('test', $conn);
$sql = <<<END
select column_name
from table_name
END;
$result = mysql_query($sql, $conn);
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
echo json_encode($rows);
?>
http://localhost/index.php
접속하면 한글이 ??? 물음표로 표시될수 있습니다.
MYSQL 한글인코딩 변경
서버를 정지합니다.
command line을 실행합니다.
> cd C:\MAMP\bin\mysql\bin
> .\mysql.exe -uroot -proot
mysql> show variables where variable_name like '%dir';
+---------------------------+--------------------------------------+
| Variable_name | Value |
+---------------------------+--------------------------------------+
| basedir | C:\MAMP\bin\mysql\ |
| character_sets_dir | C:\MAMP\bin\mysql\share\charsets\ |
| datadir | C:\MAMP\db\mysql\ |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | .\ |
| innodb_tmpdir | |
| lc_messages_dir | C:\MAMP\bin\mysql\share\ |
| plugin_dir | C:\MAMP\bin\mysql\lib\plugin\ |
| slave_load_tmpdir | C:\Users\ADMINI~1\AppData\Local\Temp |
| tmpdir | C:\Users\ADMINI~1\AppData\Local\Temp |
+---------------------------+--------------------------------------+
10 rows in set (0.00 sec)
basedir 경로에 my.ini 파일을 생성합니다.
(C:\MAMP\conf\mysql\my.ini 파일을 복사해도 됩니다.)
[client]
...
default-character-set=utf8
[mysqld]
...
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server=utf8
collation-server=utf8_general_ci
[mysqldump]
...
default-character-set = utf8
[mysql]
...
default-character-set=utf8
위와 같이 추가하고 서버를 시작합니다.
mysql> show variables like 'c%';
+--------------------------+-----------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\MAMP\bin\mysql\share\charsets\ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
| core_file | OFF |
+--------------------------+-----------------------------------+
15 rows in set (0.00 sec)
character가 utf8로 변경되고 한글도 잘 나옵니다.
CLENT_PLUGIN_AUTH is required
오류시 Driver 버전을 낮춰 설치합니다.
mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.31
mysql-connector-java-5.1.31.jar 파일을 다운로드해서 경로를 설정합니다.
Settings > Class Name에서 com.mysql.cj.jdbc.Driver 를 com.mysql.jdbc.Driver 로 변경합니다.
'Backend > PHP' 카테고리의 다른 글
PHP 한글 깨짐 방지 (0) | 2022.03.01 |
---|---|
[ajax - php] exception 처리 (0) | 2022.02.26 |
.PHP 확장자 제거하기 (0) | 2021.08.30 |
PHP에서 긴 문자열 처리 [EOT] (0) | 2021.08.23 |
PHP에서 Stored Procedure 호출하기 (0) | 2020.12.09 |