mysql修改資料庫名字
目前最安全的方法就是重新建立一個新的資料庫,把當前的數據表導入到新的資料庫中,網上的各種方法(重命名文件夾,使用shell腳本等)都是存在安全隱患的,不建議使用,如果有更好的方法,歡迎各路大神解決。
『貳』 MySQL 修改資料庫名稱的一個新奇方法
MySQL在5.1引入了一個rename
database操作,但在MySQL5.1.23後又不支持這個命令。可以說是一個實驗性的功能,沒有在生產中支持過(mysql-5.1
release在mysql-5.1.30),那麼生產中我們有時為了追求完美需要改一下庫名。怎麼操作呢?
這里提供一個變通的方法。
1.
創建出新庫名:
復制代碼
代碼如下:
mysql>create
database
db_v2;
2.生成rename語句,從olddb里遷移,我這里olddb里sbtest;
復制代碼
代碼如下:mysql>select
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.執行生成的sql
復制代碼
代碼如下:mysql>source
/tmp/rename_to_db_v2.sql
就這么簡單可以搞定了。
Good
luck!
『叄』 我想修改mysql資料庫的名字,可以怎麼修改
1、方法一:重命名所有的表,代碼如下:
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資料庫怎麼修改表名
renametable表名to新表名;
『伍』 如何修改MySQL資料庫名稱
最安全的做法是進入到mysql安裝目錄,修改庫名。
比如是默認安裝的,那麼位置在/var/lib/mysql/目錄下;目錄下的所有目錄都是庫名,直接用mv更改就可以;
提示: 如果進入mysql用命令改會發生未知錯誤的,而且新版本也不支持這種改法了!
『陸』 如何使用命令修改MySQL資料庫名
今天接到宇航同學的問題,他們老大要求更改資料庫名稱,居然是為了資料庫安全???我靠!真強的想法啊。因為他們的資料庫是採用的INNODB存儲引擎,不能直接修改資料庫的名稱,所以現轉換成MyISAM存儲引擎在修改表名在轉換成INNODB存儲引擎就好了,雖然過程比較麻煩,不如修改表名那樣容易,但是能修改就偷笑吧。我個人認為資料庫的名稱屬於資料庫設計范疇,應該遵守設計規范,不能隨便的修改名稱。第一次聽說為了安全修改資料庫名,實在是不可取。修改名稱詳細步驟(因為不僅僅是上面那幾步)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; #這一步主要查看有沒有其他進程連接,要保證沒有其他程序操作資料庫。+—-+——+———–+———+———+——-+——-+——————+| 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 | 劉德華 | 站長教學網 eyo.com+——+———–+1 row in set (0.00 sec)注意,在改名之前必須現轉換存儲引擎,否則會報錯,你想換的這個名稱就換不成了,只能換另外一個名稱了。錯誤的方法就不演示了,光記住好的就行了。
『柒』 mysql如何變更資料庫實例名
常見的主要有三種方法:
如果所有表都是MyISAM類型的話,可以直接修改文件夾的名字。關閉mysql→把data目錄中的db_name目錄重命名為new_db_name→開啟mysql
新建資料庫,在新的資料庫里重命名所有舊資料庫中的表,再刪除舊的資料庫。具體操作命令如下:創建新的資料庫→重命名數據表名稱→刪除舊的資料庫。
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;
利用mysqlmp命令從舊的數據導出數據,再導入新資料庫。具體操作命令如下:導出數據→創建新的資料庫→導入數據→刪除舊的資料庫。
mysqlmp -u root -p -h ip db_name > db_name_mp.SQLmysql -u root -p -h ip -e 「CREATE DATABASE new_db_name」mysql -u root -p -h ip new_db_name < db_name_mp.SQLmysql -u root -p -h ip -e 「DROP DATABASE db_name」