2017-11-05 12 views
0

MySQL을 사용하지 않은지 오래되었습니다.MySQL - "데이터베이스 이름"설정은 어디에 있습니까?

define ('DB_HOST', 'localhost'); 
define ('DB_NAME', 'patbrt_cv'); 
define ('DB_USER', 'patbrt_cv_user'); 
define ('DB_PASS', 'password'); 

오늘은 시험 (EasyPHP 사용) 내 로컬 서버로 내 테이블 중 하나를 (phpMyAdmin을에서 내 보낸) 수입이 작업을 수행해야합니다

내가 좋아하는 워드 프레스 연결 변수를 사용하여 일부 웹 사이트가 나는 phpMyAdmin을 구성 파일 ("config.inc.php를")

$cfg['Servers'][$i]['host'] = '127.0.0.1'; 
$cfg['Servers'][$i]['user'] = ''; 
$cfg['Servers'][$i]['password'] = ''; 

그러나 "데이터베이스 이름"정의합니다 (DB_NAME 설정)을 사용해야? 로컬 데이터베이스 서버 (EasyPHP)에서 어떻게 설정합니까? "config.inc.php"파일에서이 설정을 찾을 수 없습니다 (phpmyadmin에서 사용).

는 내가 현재 단지 데이터베이스 수입 후 얻을이 오류를 방지하기 위해 (성공적으로 설치) BigDump를 사용하여 EasyPHP에 내 웹 사이트 중 하나에서 내 테이블 중 하나를 가져 오려면이 설정이 필요합니다 당신의 PHP 클라이언트 경우

CREATE DATABASE IF NOT EXISTS `patbrt_cv` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci 
MySQL: Access denied for user ''@'localhost' to database 'patbrt_cv' 
+0

당신은 수동으로'$ cfg [ 'Servers'] [$ i] [ 'dbname'] = 'patbrt_cv';를 추가하려고 시도 했습니까? 'user'는'patbrt_cv' 데이터베이스로 작업 할 권한이 있습니까? –

답변

0

을 시도합니다 이미 MySQL에 로그인되어있는 경우 USE mydatabase; 쿼리를 사용하여 데이터베이스에 연결합니다.

MySQL 연결 문자열에서 데이터베이스를 선택할 수도 있습니다.

MySQL에 로그인 할 때 자격 증명 집합 (원본 호스트/usename/암호)을 사용합니다. 해당 자격 증명 집합은 사용하려는 데이터베이스에 액세스 할 수있는 권한이 GRANT이어야합니다. 귀하의 예제에서는 사용자 이름과 암호를 제로 길이 문자열이 - 다음과 같이 : '액세스'사용자 '@'localhost를 거부 :

MySQL은 :

$cfg['Servers'][$i]['user'] = ''; 
$cfg['Servers'][$i]['password'] = ''; 

귀하의 오류 메시지가이 말한다 데이터베이스 'patbrt_cv'에

이 당신의 PHP 프로그램이 성공적으로 t을 사용할 수있는 권한이 없습니다 localhost/(empty)/(empty)의 기원/사용자 이름/암호 자격 증명 조합 있지만 특정 자격 증명 조합으로 MySQL 서버에 로그인 한 의미 데이터베이스 patbrt_cv이거나 이미 서버에있는 데이터베이스의 목록을 가져올 수있는 권한이 없을 수도 있습니다.

root 사용자 이름과 로컬 MySQL 서버에 설정된 루트 암호를 사용해 볼 수 있습니다. 그러면 서버에 이미 존재하는 데이터베이스 목록을 검색하기 위해 명령 SHOW DATABASES;을 발행하는 것과 같은 일을하기 위해 PHP 프로그램에 서버에 액세스 할 수 있습니다.

EasyPHP는 Windows 번들입니다. 이는 우수한 Windows MySQL 클라이언트 중 하나를 사용할 수 있음을 의미합니다. HeidiSQL (https://www.heidisql.com/download.php)과 같은 클라이언트를 다운로드하여 설치하고이를 사용하여 로컬 MySQL 시스템의 내용을 살펴보십시오. 또한 사용자 자격 증명 및 grantint 권한을 생성하기위한 시스템이 있습니다 (도구/사용자 관리자)

왜이 자격증 명성이 그렇게 복잡한가요? MySQL은 서로 다른 사용자가 서로의 존재에 대해 알지 못하고 다른 사람들의 데이터를 볼 필요없이 다른 데이터베이스를 사용하는 공유 멀티 테넌트 시스템으로 설계 되었기 때문에. 자신의 머신에서 MySQL을 실행할 때 멀티 테넌트 기능을 사용하지는 않지만 여전히 존재합니다.