스크립트를 변경하는 모든 테이블과 분야에 utf-8-bin 콜레이션에서 MYSQL
문제
가 SQL
나 PHP
는 스크립트를 실행할 수 있습을 바꿀 것입니다 정렬 기본에 모든 테이블과 분야에서 데이터베이스?
내가 쓸 수 있다 자신을 하나,하지만 제 생각에 이어야 한다는 뭔가를 쉽게 사용할 수 있는 사이트에서 다음과 같다.수있는 경우 함께 올 자신을 하나기 전에 누군가가 게시물 중 하나,에 게시합니다.
해결책
주의!는 경우에 당신은 실제로 utf 로 저장되어 다른 인코딩을 할 수가 있다에서 당신의 손에 있습니다.다시 처음이다.다음의 어떤 표준 방법:
에 대한 인스턴스 http://www.cesspit.net/drupal/node/898 http://www.hackszine.com/blog/archive/2007/05/mysql_database_migration_latin.html
위을 변환하는 모든 텍스트 필드 바이너리,다시 varchar/텍스트입니다.이것은 저장된다.
나는 데이터는 UTF8,으로 저장되는 라틴어 1.무엇을 했는지:
드롭 인덱스입니다.변환 분야를 바이너리입니다.변환하 utf8-일반 ci
하는 경우에는 램프를 추가하는 것을 잊지 마세 이름 설정 명령과 상호 작용하기 전에 db 고 있는지 확인하십시오 당신은 설정 문자 인코딩합니다.
다른 팁
에서 할 수 있는 하나의 명령(보다 148PHP):
mysql --database=dbname -B -N -e "SHOW TABLES" \
| awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' \
| mysql --database=dbname &
당신을 사랑하는 명령행...(필요할 수 있는 고려대 --user
고 --password
옵션 mysql
).
편집:을 피하는 외국인 핵심 문제를 추가 SET foreign_key_checks = 0;
고 SET foreign_key_checks = 1;
나는 그것을 쉽게 이렇게 두 가지 단계를 실행 PhpMyAdmin.
1 단계:
SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`,
'` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'database_name'
ORDER BY 1
2 단계:
이 쿼리의 목록을 출력한 쿼리,하나는 각각의 테이블에 있습니다.에 복사하여야 합니다 목록의 쿼리를 붙여 그들에게 명령 라인 또는 PhpMyAdmin 의 SQL 탭에 대한 변경을 만들 수 있습니다.
확인을 썼는데 이것을 계정으로 말한 것이다.도움을 주셔서 감사합니다,나는 이 스크립트 도움이 될 것입니다 다른 사람입니다.없 품질 보증에 대한 그것의 사용,그래서 백업하십시오 그것을 실행하기 전에.그 야 모든 데이터베이스그리고 좋은 일에는 나 자신입니다.
편집:추가되는 변수를 위해 정상에는 문자셋/collate 변환합니다.EDIT2:변경된 데이터베이스의 테이블은 기본 문자셋/collate
<?php
function MysqlError()
{
if (mysql_errno())
{
echo "<b>Mysql Error: " . mysql_error() . "</b>\n";
}
}
$username = "root";
$password = "";
$db = "database";
$host = "localhost";
$target_charset = "utf8";
$target_collate = "utf8_general_ci";
echo "<pre>";
$conn = mysql_connect($host, $username, $password);
mysql_select_db($db, $conn);
$tabs = array();
$res = mysql_query("SHOW TABLES");
MysqlError();
while (($row = mysql_fetch_row($res)) != null)
{
$tabs[] = $row[0];
}
// now, fix tables
foreach ($tabs as $tab)
{
$res = mysql_query("show index from {$tab}");
MysqlError();
$indicies = array();
while (($row = mysql_fetch_array($res)) != null)
{
if ($row[2] != "PRIMARY")
{
$indicies[] = array("name" => $row[2], "unique" => !($row[1] == "1"), "col" => $row[4]);
mysql_query("ALTER TABLE {$tab} DROP INDEX {$row[2]}");
MysqlError();
echo "Dropped index {$row[2]}. Unique: {$row[1]}\n";
}
}
$res = mysql_query("DESCRIBE {$tab}");
MysqlError();
while (($row = mysql_fetch_array($res)) != null)
{
$name = $row[0];
$type = $row[1];
$set = false;
if (preg_match("/^varchar\((\d+)\)$/i", $type, $mat))
{
$size = $mat[1];
mysql_query("ALTER TABLE {$tab} MODIFY {$name} VARBINARY({$size})");
MysqlError();
mysql_query("ALTER TABLE {$tab} MODIFY {$name} VARCHAR({$size}) CHARACTER SET {$target_charset}");
MysqlError();
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
else if (!strcasecmp($type, "CHAR"))
{
mysql_query("ALTER TABLE {$tab} MODIFY {$name} BINARY(1)");
MysqlError();
mysql_query("ALTER TABLE {$tab} MODIFY {$name} VARCHAR(1) CHARACTER SET {$target_charset}");
MysqlError();
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
else if (!strcasecmp($type, "TINYTEXT"))
{
mysql_query("ALTER TABLE {$tab} MODIFY {$name} TINYBLOB");
MysqlError();
mysql_query("ALTER TABLE {$tab} MODIFY {$name} TINYTEXT CHARACTER SET {$target_charset}");
MysqlError();
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
else if (!strcasecmp($type, "MEDIUMTEXT"))
{
mysql_query("ALTER TABLE {$tab} MODIFY {$name} MEDIUMBLOB");
MysqlError();
mysql_query("ALTER TABLE {$tab} MODIFY {$name} MEDIUMTEXT CHARACTER SET {$target_charset}");
MysqlError();
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
else if (!strcasecmp($type, "LONGTEXT"))
{
mysql_query("ALTER TABLE {$tab} MODIFY {$name} LONGBLOB");
MysqlError();
mysql_query("ALTER TABLE {$tab} MODIFY {$name} LONGTEXT CHARACTER SET {$target_charset}");
MysqlError();
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
else if (!strcasecmp($type, "TEXT"))
{
mysql_query("ALTER TABLE {$tab} MODIFY {$name} BLOB");
MysqlError();
mysql_query("ALTER TABLE {$tab} MODIFY {$name} TEXT CHARACTER SET {$target_charset}");
MysqlError();
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
if ($set)
mysql_query("ALTER TABLE {$tab} MODIFY {$name} COLLATE {$target_collate}");
}
// re-build indicies..
foreach ($indicies as $index)
{
if ($index["unique"])
{
mysql_query("CREATE UNIQUE INDEX {$index["name"]} ON {$tab} ({$index["col"]})");
MysqlError();
}
else
{
mysql_query("CREATE INDEX {$index["name"]} ON {$tab} ({$index["col"]})");
MysqlError();
}
echo "Created index {$index["name"]} on {$tab}. Unique: {$index["unique"]}\n";
}
// set default collate
mysql_query("ALTER TABLE {$tab} DEFAULT CHARACTER SET {$target_charset} COLLATE {$target_collate}");
}
// set database charset
mysql_query("ALTER DATABASE {$db} DEFAULT CHARACTER SET {$target_charset} COLLATE {$target_collate}");
mysql_close($conn);
echo "</pre>";
?>
이 PHP 조각을 바꿀 것입 정렬 모든 테이블에서 db.(그것은에서 가져온 이 사이트.)
<?php
// your connection
mysql_connect("localhost","root","***");
mysql_select_db("db1");
// convert code
$res = mysql_query("SHOW TABLES");
while ($row = mysql_fetch_array($res))
{
foreach ($row as $key => $table)
{
mysql_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci");
echo $key . " => " . $table . " CONVERTED<br />";
}
}
?>
또 다른 방법을 사용하여 명령 라인에 따라@다윗의 없이 awk
for t in $(mysql --user=root --password=admin --database=DBNAME -e "show tables";);do echo "Altering" $t;mysql --user=root --password=admin --database=DBNAME -e "ALTER TABLE $t CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;";done
꾸며져 있
for t in $(mysql --user=root --password=admin --database=DBNAME -e "show tables";);
do
echo "Altering" $t;
mysql --user=root --password=admin --database=DBNAME -e "ALTER TABLE $t CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;";
done
더 완전한 버전의 위의 스크립트는 여기에서 찾을 수 있습니다:
http://www.zen-cart.com/index.php?main_page=product_contrib_info&products_id=1937
어떤 의견을 남겨주세요 이것에 대해 공헌에 여기:http://www.zen-cart.com/forum/showthread.php?p=1034214
문자집 및 정렬이 동일하지 않은 것입니다.데이터 정렬은 규칙 세트를 정렬하는 방법에 대해 문자열입니다.Charset 은 규칙의 대표하는 방법에 대한 자입니다.콜레이션에 따라 달라집 charset.
에서 스크립트가 위의 모든 테이블을 선택한 convertation(과 SHOW TABLES
어),하지만 더 편리하고 휴대하는 방법을 확인하는 테이블에 정렬을 변환하기 전에 테이블에 있습니다.이 쿼리가 그것:
SELECT table_name
, table_collation
FROM information_schema.tables
사용자 지정 shell collatedb, 일기 예보를 제공합니다:
collatedb <username> <password> <database> <collation>
예제:
collatedb root 0000 myDatabase utf8_bin
감사@nlaq 에 대한 코드를 시작했 아래의 솔루션입니다.
나는 출시된 워드프레스 플러그인을 실현하지 않고는 워드 프레스 설정하지 않 collate 자동으로 합니다.그래서 많은 사람들이 사용하여 플러그인이 끝나 latin1_swedish_ci
때야 utf8_general_ci
.
여기에 코드를 추가하는 플러그인을 감지 latin1_swedish_ci
대조하고 그것을 변경하는 utf8_general_ci
.
이 코드를 테스트에서 사용하기 전에 자신 플러그인!
// list the names of your wordpress plugin database tables (without db prefix)
$tables_to_check = array(
'social_message',
'social_facebook',
'social_facebook_message',
'social_facebook_page',
'social_google',
'social_google_mesage',
'social_twitter',
'social_twitter_message',
);
// choose the collate to search for and replace:
$convert_fields_collate_from = 'latin1_swedish_ci';
$convert_fields_collate_to = 'utf8_general_ci';
$convert_tables_character_set_to = 'utf8';
$show_debug_messages = false;
global $wpdb;
$wpdb->show_errors();
foreach($tables_to_check as $table) {
$table = $wpdb->prefix . $table;
$indicies = $wpdb->get_results( "SHOW INDEX FROM `$table`", ARRAY_A );
$results = $wpdb->get_results( "SHOW FULL COLUMNS FROM `$table`" , ARRAY_A );
foreach($results as $result){
if($show_debug_messages)echo "Checking field ".$result['Field'] ." with collat: ".$result['Collation']."\n";
if(isset($result['Field']) && $result['Field'] && isset($result['Collation']) && $result['Collation'] == $convert_fields_collate_from){
if($show_debug_messages)echo "Table: $table - Converting field " .$result['Field'] ." - " .$result['Type']." - from $convert_fields_collate_from to $convert_fields_collate_to \n";
// found a field to convert. check if there's an index on this field.
// we have to remove index before converting field to binary.
$is_there_an_index = false;
foreach($indicies as $index){
if ( isset($index['Column_name']) && $index['Column_name'] == $result['Field']){
// there's an index on this column! store it for adding later on.
$is_there_an_index = $index;
$wpdb->query( $wpdb->prepare( "ALTER TABLE `%s` DROP INDEX %s", $table, $index['Key_name']) );
if($show_debug_messages)echo "Dropped index ".$index['Key_name']." before converting field.. \n";
break;
}
}
$set = false;
if ( preg_match( "/^varchar\((\d+)\)$/i", $result['Type'], $mat ) ) {
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` VARBINARY({$mat[1]})" );
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` VARCHAR({$mat[1]}) CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
$set = true;
} else if ( !strcasecmp( $result['Type'], "CHAR" ) ) {
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` BINARY(1)" );
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` VARCHAR(1) CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
$set = true;
} else if ( !strcasecmp( $result['Type'], "TINYTEXT" ) ) {
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` TINYBLOB" );
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` TINYTEXT CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
$set = true;
} else if ( !strcasecmp( $result['Type'], "MEDIUMTEXT" ) ) {
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` MEDIUMBLOB" );
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` MEDIUMTEXT CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
$set = true;
} else if ( !strcasecmp( $result['Type'], "LONGTEXT" ) ) {
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` LONGBLOB" );
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` LONGTEXT CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
$set = true;
} else if ( !strcasecmp( $result['Type'], "TEXT" ) ) {
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` BLOB" );
$wpdb->query( "ALTER TABLE `{$table}` MODIFY `{$result['Field']}` TEXT CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
$set = true;
}else{
if($show_debug_messages)echo "Failed to change field - unsupported type: ".$result['Type']."\n";
}
if($set){
if($show_debug_messages)echo "Altered field success! \n";
$wpdb->query( "ALTER TABLE `$table` MODIFY {$result['Field']} COLLATE $convert_fields_collate_to" );
}
if($is_there_an_index !== false){
// add the index back.
if ( !$is_there_an_index["Non_unique"] ) {
$wpdb->query( "CREATE UNIQUE INDEX `{$is_there_an_index['Key_name']}` ON `{$table}` ({$is_there_an_index['Column_name']})", $is_there_an_index['Key_name'], $table, $is_there_an_index['Column_name'] );
} else {
$wpdb->query( "CREATE UNIQUE INDEX `{$is_there_an_index['Key_name']}` ON `{$table}` ({$is_there_an_index['Column_name']})", $is_there_an_index['Key_name'], $table, $is_there_an_index['Column_name'] );
}
}
}
}
// set default collate
$wpdb->query( "ALTER TABLE `{$table}` DEFAULT CHARACTER SET {$convert_tables_character_set_to} COLLATE {$convert_fields_collate_to}" );
if($show_debug_messages)echo "Finished with table $table \n";
}
$wpdb->hide_errors();
간단(dumb?:)솔루션을 사용하여,다중 선택 기능의 IDE:
- 실행하는"표시 테이블,"쿼리와 결과 복사 열(테이블 이름).
- 다중 선택 시 추가"ALTER TABLE".
- 다중 선택 엔딩을 추가하"변환하는 캐릭터 설정 utf8COLLATE utf8_general_ci;"
- 실행 만들어 쿼리를 처리합니다.
여기에는 이렇게 할 수 있는 쉬운 방법으로 phpmyadmin 없다면 명령행에 대한 액세스 또는 액세스 편집 INFORMATION_SCHEMA.
첫째,의 조언을 듣고 많은 다른 답변을 여기에 당신은 정말 나사 것을 여기에서,그래서 백업을합니다.지금의 백업을 백업입니다.또한 이것은 작동하지 않는 경우에 데이터의 인코딩된 내용과 다르게 변경합니다.
할 필요가 있다는 것에 유의해 주십을 찾기 위해 정확한의 이름은 기분을 상하게 스키마와는 문자 인코딩을 변경할 필요가에서 시작하기 전에.
- 내보내기 데이터베이스로 SQL;사본;오픈 그것은 텍스트 편집기에서 당신의 선택
- 찾을 수 있고 교체 스키마 첫째,예를 들어-찾기: latin1_swedish_ci, 대체: utf8_general_ci
- 찾을 수 있고 교체 문자 인코딩을 할 경우,예를 들어-찾기: latin1, 대체: utf8
- 새로 생성 테스트 데이터베이스로 업로드하는 새로운 SQL 파일로 phpmyadmin
이것은 아주 쉽게 그것을 할 수있는 방법이지만,또 다시,이것지 않을 것이다 인코딩을 변경하고,데이터의 것입니다 그래서만 작품에서는 특정 상황이다.
내가 생각하는 가장 빠른 방법으로 phpmyadmin 일부 jQuery 에 console.
가 테이블의 구조 및 크롬/파이어 폭스 개발자가 콘솔(일반적으로 F12 키보드):
이 코드를 실행하 모두 선택하려면 필드에 잘못된 문자셋을 시작정:
var elems = $('dfn'); var lastID = elems.length - 1; elems.each(function(i) { if ($(this).html() != 'utf8_general_ci') { $('input:checkbox', $('td', $(this).parent().parent()).first()).attr('checked','checked'); } if (i == lastID) { $("button[name='submit_mult'][value='change']").click(); } });
페이지가 로드되면 이 코드를 사용하여 콘솔에서 선택하려면 올바른 인코딩:
$("select[name*='field_collation']" ).val('utf8_general_ci');
저장
변경 테이블의 문자집에서"정렬"필드에서"작업을"탭
에서 테스트 phpmyadmin4.0 4.4,그러나 내가 생각하는 작업에 모두 4.x 버전
업데이트 nlaq 의 대답을 작동 PHP7 고를 올바르게 처리하도록 여러 열수,이진 대조 데이터(예를 들어, latin1_bin
),etc., 어 코드 비트.이 코드는 내가 발견/시도는 성공적으로 마이그레이션 내에서 데이터베이스 latin1 을 utf8.
<?php
/////////// BEGIN CONFIG ////////////////////
$username = "";
$password = "";
$db = "";
$host = "";
$target_charset = "utf8";
$target_collation = "utf8_unicode_ci";
$target_bin_collation = "utf8_bin";
/////////// END CONFIG ////////////////////
function MySQLSafeQuery($conn, $query) {
$res = mysqli_query($conn, $query);
if (mysqli_errno($conn)) {
echo "<b>Mysql Error: " . mysqli_error($conn) . "</b>\n";
echo "<span>This query caused the above error: <i>" . $query . "</i></span>\n";
}
return $res;
}
function binary_typename($type) {
$mysql_type_to_binary_type_map = array(
"VARCHAR" => "VARBINARY",
"CHAR" => "BINARY(1)",
"TINYTEXT" => "TINYBLOB",
"MEDIUMTEXT" => "MEDIUMBLOB",
"LONGTEXT" => "LONGBLOB",
"TEXT" => "BLOB"
);
$typename = "";
if (preg_match("/^varchar\((\d+)\)$/i", $type, $mat))
$typename = $mysql_type_to_binary_type_map["VARCHAR"] . "(" . (2*$mat[1]) . ")";
else if (!strcasecmp($type, "CHAR"))
$typename = $mysql_type_to_binary_type_map["CHAR"] . "(1)";
else if (array_key_exists(strtoupper($type), $mysql_type_to_binary_type_map))
$typename = $mysql_type_to_binary_type_map[strtoupper($type)];
return $typename;
}
echo "<pre>";
// Connect to database
$conn = mysqli_connect($host, $username, $password);
mysqli_select_db($conn, $db);
// Get list of tables
$tabs = array();
$query = "SHOW TABLES";
$res = MySQLSafeQuery($conn, $query);
while (($row = mysqli_fetch_row($res)) != null)
$tabs[] = $row[0];
// Now fix tables
foreach ($tabs as $tab) {
$res = MySQLSafeQuery($conn, "SHOW INDEX FROM `{$tab}`");
$indicies = array();
while (($row = mysqli_fetch_array($res)) != null) {
if ($row[2] != "PRIMARY") {
$append = true;
foreach ($indicies as $index) {
if ($index["name"] == $row[2]) {
$index["col"][] = $row[4];
$append = false;
}
}
if($append)
$indicies[] = array("name" => $row[2], "unique" => !($row[1] == "1"), "col" => array($row[4]));
}
}
foreach ($indicies as $index) {
MySQLSafeQuery($conn, "ALTER TABLE `{$tab}` DROP INDEX `{$index["name"]}`");
echo "Dropped index {$index["name"]}. Unique: {$index["unique"]}\n";
}
$res = MySQLSafeQuery($conn, "SHOW FULL COLUMNS FROM `{$tab}`");
while (($row = mysqli_fetch_array($res)) != null) {
$name = $row[0];
$type = $row[1];
$current_collation = $row[2];
$target_collation_bak = $target_collation;
if(!strcasecmp($current_collation, "latin1_bin"))
$target_collation = $target_bin_collation;
$set = false;
$binary_typename = binary_typename($type);
if ($binary_typename != "") {
MySQLSafeQuery($conn, "ALTER TABLE `{$tab}` MODIFY `{$name}` {$binary_typename}");
MySQLSafeQuery($conn, "ALTER TABLE `{$tab}` MODIFY `{$name}` {$type} CHARACTER SET '{$target_charset}' COLLATE '{$target_collation}'");
$set = true;
echo "Altered field {$name} on {$tab} from type {$type}\n";
}
$target_collation = $target_collation_bak;
}
// Rebuild indicies
foreach ($indicies as $index) {
// Handle multi-column indices
$joined_col_str = "";
foreach ($index["col"] as $col)
$joined_col_str = $joined_col_str . ", `" . $col . "`";
$joined_col_str = substr($joined_col_str, 2);
$query = "";
if ($index["unique"])
$query = "CREATE UNIQUE INDEX `{$index["name"]}` ON `{$tab}` ({$joined_col_str})";
else
$query = "CREATE INDEX `{$index["name"]}` ON `{$tab}` ({$joined_col_str})";
MySQLSafeQuery($conn, $query);
echo "Created index {$index["name"]} on {$tab}. Unique: {$index["unique"]}\n";
}
// Set default character set and collation for table
MySQLSafeQuery($conn, "ALTER TABLE `{$tab}` DEFAULT CHARACTER SET '{$target_charset}' COLLATE '{$target_collation}'");
}
// Set default character set and collation for database
MySQLSafeQuery($conn, "ALTER DATABASE `{$db}` DEFAULT CHARACTER SET '{$target_charset}' COLLATE '{$target_collation}'");
mysqli_close($conn);
echo "</pre>";
?>
윈도우 사용자
이외에@davidwinterbottom 답변, 윈도우 사용자가 사용할 수 있는 명령은 아래:
mysql.exe --database=[database] -u [user] -p[password] -B -N -e "SHOW TABLES" \
| awk.exe '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' \
| mysql.exe -u [user] -p[password] --database=[database] &
대체[데이터베이스],[사용자]와[비밀]자리 표시된 실제 값입니다.
Git-bash 사용자는 다운로드 bash 스크립트 실행합니다.