真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在mysql怎么改庫(kù)名,mysql怎么修改庫(kù)名

重命名mysql數(shù)據(jù)庫(kù)的五個(gè)方法

五個(gè)改mysql數(shù)據(jù)庫(kù)名的方法:

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括伊寧網(wǎng)站建設(shè)、伊寧網(wǎng)站制作、伊寧網(wǎng)頁(yè)制作以及伊寧網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,伊寧網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到伊寧省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1.

RENAME

DATABASE

db_name

TO

new_db_name

這個(gè)。。這個(gè)語(yǔ)法在mysql

5.1.7中被添加進(jìn)來(lái),到了5.1.23又去掉了。據(jù)說(shuō)有可能丟失數(shù)據(jù)。還是不要用的好。詳見(jiàn):

2.如果所有表都是MyISAM類(lèi)型的話,可以改文件夾的名字

關(guān)閉mysqld

把data目錄中的db_name目錄重命名為new_db_name

開(kāi)啟mysqld

3.重命名所有的表

CREATE

DATABASE

new_db_name;

RENAME

TABLE

db_name.table1

TO

new_db_name.table1,

db_name.table2

TO

new_db_name.table2;

DROP

DATABASE

db_name;

4.

mysqldump導(dǎo)出數(shù)據(jù)再導(dǎo)入

mysqldump

-uxxxx

-pxxxx

-h

xxxx

db_name

db_name_dump.SQL

mysql

-uxxxx

-pxxxx

-h

xxxx

-e

“CREATE

DATABASE

new_db_name”

mysql

-uxxxx

-pxxxx

-h

xxxx

new_db_name

db_name_dump.SQL

mysql

-uxxxx

-pxxxx

-h

xxxx

-e

“DROP

DATABASE

db_name”

5.使用Shell腳本重命名所有的表

#!/bin/bash

mysqlconn=”mysql

-u

xxxx

-pxxxx

-S

/var/lib/mysql/mysql.sock

-h

localhost”

olddb=”db_name”

newdb=”new_db_name”

#$mysqlconn

-e

“CREATE

DATABASE

$newdb”

params=$($mysqlconn

-N

-e

“SELECT

TABLE_NAME

FROM

INFORMATION_SCHEMA.TABLES

WHERE

table_schema=’$olddb’”)

for

name

in

$params;

do

$mysqlconn

-e

“RENAME

TABLE

$olddb.$name

to

$newdb.$name”;

done;

#$mysqlconn

-e

“DROP

DATABASE

$olddb”

就是方法3的優(yōu)化版。

mysql 可以改數(shù)據(jù)庫(kù)的名字嗎

提供三種方法:

1. RENAME DATABASE db_name TO new_db_name

這個(gè)。。這個(gè)語(yǔ)法在mysql 5.1.7中被添加進(jìn)來(lái),到了5.1.23又去掉了。

據(jù)說(shuō)有可能丟失數(shù)據(jù)。還是不要用的好。

2.如果所有表都是MyISAM類(lèi)型的話,可以改文件夾的名字

關(guān)閉mysqld

把data目錄中的db_name目錄重命名為new_db_name

開(kāi)啟mysqld

3.重命名所有的表

CREATE DATABASE new_db_name;

RENAME TABLE db_name.table1 TO new_db_name.table1,

db_name.table2 TO new_db_name.table2;

DROP DATABASE db_name;

如何使用命令修改MySQL數(shù)據(jù)庫(kù)名?

今天接到宇航同學(xué)的問(wèn)題,他們老大要求更改數(shù)據(jù)庫(kù)名稱(chēng),居然是為了數(shù)據(jù)庫(kù)安全???我靠!真強(qiáng)的想法啊。因?yàn)樗麄兊臄?shù)據(jù)庫(kù)是采用的INNODB存儲(chǔ)引擎,不能直接修改數(shù)據(jù)庫(kù)的名稱(chēng),所以現(xiàn)轉(zhuǎn)換成MyISAM存儲(chǔ)引擎在修改表名在轉(zhuǎn)換成INNODB存儲(chǔ)引擎就好了,雖然過(guò)程比較麻煩,不如修改表名那樣容易,但是能修改就偷笑吧。我個(gè)人認(rèn)為數(shù)據(jù)庫(kù)的名稱(chēng)屬于數(shù)據(jù)庫(kù)設(shè)計(jì)范疇,應(yīng)該遵守設(shè)計(jì)規(guī)范,不能隨便的修改名稱(chēng)。第一次聽(tīng)說(shuō)為了安全修改數(shù)據(jù)庫(kù)名,實(shí)在是不可取。修改名稱(chēng)詳細(xì)步驟(因?yàn)椴粌H僅是上面那幾步)mysql use dinghao;mysql select * from t1;+——+———–+| id | name |+——+———–+| 1 | 劉德華 | +——+———–+1 row in set (0.00 sec)mysql show create table t1;+——-+————————————————————————————————————————-+| Table | Create Table |+——-+————————————————————————————————————————-+| t1 | CREATE TABLE `t1` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +——-+————————————————————————————————————————-+1 row in set (0.00 sec)mysql flush tables;Query OK, 0 rows affected (0.00 sec)mysql flush logs;Query OK, 0 rows affected (0.00 sec)mysql show processlist; #這一步主要查看有沒(méi)有其他進(jìn)程連接,要保證沒(méi)有其他程序操作數(shù)據(jù)庫(kù)。+—-+——+———–+———+———+——-+——-+——————+| Id | User | Host | db | Command | Time | State | Info |+—-+——+———–+———+———+——-+——-+——————+| 17 | root | localhost | dinghao | Query | 0 | NULL | show processlist | +—-+——+———–+———+———+——-+——-+——————+1 rows in set (0.00 sec)mysql alter table t1 engine=MyISAM;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0mysql exit[root@mysqludf var]# mv dinghao aaa;mysql use aaa;Database changedmysql alter table t1 engine=INNODB;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql select * from t1;+——+———–+| id | name |+——+———–+| 1 | 劉德華 | 站長(zhǎng)教學(xué)網(wǎng) eduyo.com+——+———–+1 row in set (0.00 sec)注意,在改名之前必須現(xiàn)轉(zhuǎn)換存儲(chǔ)引擎,否則會(huì)報(bào)錯(cuò),你想換的這個(gè)名稱(chēng)就換不成了,只能換另外一個(gè)名稱(chēng)了。錯(cuò)誤的方法就不演示了,光記住好的就行了。

如何修改MySQL數(shù)據(jù)庫(kù)名稱(chēng)

最安全的做法是進(jìn)入到mysql安裝目錄,修改庫(kù)名。

比如是默認(rèn)安裝的,那么位置在/var/lib/mysql/目錄下;目錄下的所有目錄都是庫(kù)名,直接用mv更改就可以;

提示: 如果進(jìn)入mysql用命令改會(huì)發(fā)生未知錯(cuò)誤的,而且新版本也不支持這種改法了!

MySQL?修改數(shù)據(jù)庫(kù)名稱(chēng)的一個(gè)新奇方法

MySQL在5.1引入了一個(gè)rename

database操作,但在MySQL5.1.23后又不支持這個(gè)命令。可以說(shuō)是一個(gè)實(shí)驗(yàn)性的功能,沒(méi)有在生產(chǎn)中支持過(guò)(mysql-5.1

release在mysql-5.1.30),那么生產(chǎn)中我們有時(shí)為了追求完美需要改一下庫(kù)名。怎么操作呢?

這里提供一個(gè)變通的方法。

1.

創(chuàng)建出新庫(kù)名:

復(fù)制代碼

代碼如下:

mysqlcreate

database

db_v2;

2.生成rename語(yǔ)句,從olddb里遷移,我這里olddb里sbtest;

復(fù)制代碼

代碼如下:mysqlselect

concat("rename

table

",table_schema,".",table_name,"

to

db_v2.",table_name,";")

into

outfile

'/tmp/rename_to_db_v2.sql'

from

information_schema.tables

where

table_schema='sbtest';

3.執(zhí)行生成的sql

復(fù)制代碼

代碼如下:mysqlsource

/tmp/rename_to_db_v2.sql

就這么簡(jiǎn)單可以搞定了。

Good

luck!

怎樣在mysql里面修改數(shù)據(jù)庫(kù)名稱(chēng)?

被取消的命令MySQL 之前提供了一個(gè) rename database db_old to db_new 的命令來(lái)直接對(duì)數(shù)據(jù)庫(kù)改名,可能由于實(shí)現(xiàn)的功能不完備(比如,這條命令可能是一個(gè)超大的事務(wù),或者是由于之前的表很多還是 MyISAM 等),后來(lái)的版本直接取消了這條命令。更改數(shù)據(jù)庫(kù)名大致上有以下幾種方案:

一、mysqldump 導(dǎo)入導(dǎo)出要說(shuō)最簡(jiǎn)單的方法,就是直接用 mysqldump 工具,在舊庫(kù)導(dǎo)出再往新庫(kù)導(dǎo)入(最原始、最慢、最容易想到)的方法:舊庫(kù) yttdb_old 導(dǎo)出(包含的對(duì)象:表、視圖、觸發(fā)器、事件、存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù))

二、改整庫(kù)的表名利用 MySQL 更改表名的方法來(lái)批量把舊庫(kù)的所有表依次遍歷,改名為新庫(kù)的表。這種方法比第一種要快很多倍,但是沒(méi)有第一步操作起來(lái)那么順滑,不能一步到位。比如,要把數(shù)據(jù)庫(kù) yttdb_old 改名為 yttdb_new,如果數(shù)據(jù)庫(kù) yttdb_old 里只有磁盤(pán)表,那很簡(jiǎn)單,直接改名即可?;蛘邔?xiě)個(gè)腳本來(lái)批量改,非常簡(jiǎn)單。但是一般舊庫(kù)里不只有磁盤(pán)表,還包含其他各種對(duì)象。這時(shí)候可以先考慮把舊庫(kù)的各種對(duì)象導(dǎo)出來(lái),完了在逐一改完表名后導(dǎo)進(jìn)去。

三、歷史方案其實(shí)在 MySQL 早期還有一種方法。假設(shè) MySQL 部署好了后,所有的 binlog 都有備份,并且二進(jìn)制日志格式還是 statement 的話,那就可以簡(jiǎn)單搭建一臺(tái)從機(jī),讓它慢慢追主機(jī)到新的庫(kù)名,等確切要更改舊庫(kù)的時(shí)候,再直接晉升從機(jī)為主機(jī)即可。這里只需要從機(jī)配置一個(gè)參數(shù)來(lái)把舊庫(kù)指向?yàn)樾聨?kù):replicate-rewrite-db=yttdb_old-yttdb_new不過(guò)這種局限性很大,不具備標(biāo)準(zhǔn)化,不推薦。

總結(jié)其實(shí)針對(duì) MySQL 本身改庫(kù)名,大致就這么幾種方法:

如果數(shù)據(jù)量小,推薦第一種;

數(shù)據(jù)量大,則推薦第二種;

數(shù)據(jù)量巨大,那就非 MySQL 本身能解決的了。

可通過(guò)部署第三方 ETL 工具,通過(guò)解析 MySQL 二進(jìn)制日志或其他的方式來(lái)把舊庫(kù)數(shù)據(jù)直接讀取到新庫(kù)達(dá)到改名的目的等等。


分享題目:在mysql怎么改庫(kù)名,mysql怎么修改庫(kù)名
文章鏈接:http://weahome.cn/article/phgdsd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部