MySQL 데이터베이스상태 및 버전 번호 데이터 테이블 구조 정보를 확인하는 방법은 무엇입니까?

MySQL의 메타 데이터

MySQL에 대한 다음 세 가지 정보를 알고 싶을 수 있습니다.

  • 쿼리 결과 정보: SELECT, UPDATE 또는 DELETE 문의 영향을 받는 레코드 수입니다.
  • 데이터베이스 및 데이터 테이블에 대한 정보: 데이터베이스 및 데이터 테이블의 구조 정보를 포함합니다.
  • MySQL 서버 정보: 데이터베이스 서버의 현재 상태, 버전 번호 등을 포함합니다.

MySQL 명령 프롬프트에서 위의 서버 정보를 쉽게 얻을 수 있습니다.그러나 Perl이나 PHP와 같은 스크립팅 언어를 사용하는 경우 이를 얻기 위해 특정 인터페이스 함수를 호출해야 합니다.다음으로 자세히 소개하겠습니다.


쿼리 문의 영향을 받는 레코드 수 가져오기

PERL 인스턴스

DBI 스크립트에서 명령문의 영향을 받는 레코드 수는 do( ) 또는 execute( ) 함수에 의해 반환됩니다.

# 方法 1
# 使用do( ) 执行  $query 
my $count = $dbh->do ($query);
# 如果发生错误会输出 0
printf "%d 条数据被影响\n", (defined ($count) ? $count : 0);
# 方法 2
# 使用prepare( ) 及 execute( ) 执行  $query 
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d 条数据被影响\n", (defined ($count) ? $count : 0);

PHP 인스턴스

PHP에서 mysqli_affected_rows() 함수를 사용하여 쿼리의 영향을 받는 레코드 수를 얻을 수 있습니다.

$result_id = mysqli_query ($conn_id, $query);
# 如果查询失败返回 
$count = ($result_id ? mysqli_affected_rows ($conn_id) : 0);
print ("$count 条数据被影响\n");

데이터베이스 및 데이터 테이블 목록

MySQL 서버에서 데이터베이스 및 테이블 목록을 쉽게 얻을 수 있습니다.권한이 충분하지 않으면 결과가 null을 반환합니다.
SHOW TABLES 또는 SHOW DATABASES 문을 사용하여 데이터베이스 및 데이터 테이블 목록을 가져올 수도 있습니다.

PERL 인스턴스

# 获取当前数据库中所有可用的表。
my @tables = $dbh->tables ( );
foreach $table (@tables ){
   print "表名 $table\n";
}

PHP 인스턴스

다음 예제에서는 MySQL 서버의 모든 데이터베이스를 출력합니다.

모든 데이터베이스 보기

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
$db_list = mysqli_query($conn, 'SHOW DATABASES');
while ($db = mysqli_fetch_object($db_list))
{
 echo $db->Database . "<br />";
}
mysqli_close($conn);
?>

서버 메타데이터 가져오기

다음 명령문은 MySQL 명령 프롬프트 또는 PHP 스크립트와 같은 스크립트에서 사용할 수 있습니다.

명령描述
버전 선택( )서버 버전 정보
데이터베이스 선택( )현재 데이터베이스 이름(또는 공백 반환)
사용자 선택( )현재 사용자 이름
상태 표시서버 상태
변수 표시서버 구성 변수