1.須要從A數據庫完整複製一份到B數據庫php
直接在Linux下,若是是服務器複製到本身服務器自己mysql
mysqldump test -u root -ppassword --add-drop-table | mysql test1 -u root -ppasswordsql
使用的時候,會有如下的提示:(能夠忽略該提示)數據庫
Warning: Using a password on the command line interface can be insecure.服務器
若是是從本服務器複製到另一臺服務器,則是用如下語句:ide
Mysqldump test -uroot -ppassword --add-drop-table | mysql test1 -h 192.168.1.100 -uroot -ppassword函數
這樣就完成了數據庫的遠程複製。工具
PS: mysqldump的默認參數是--add-drop-table 默認create表前都會刪除之前的表,若是是spa
--skip-add-drop-table 參數則只有create沒有delete行爲。設計
2.備份還原數據庫(數據庫維護操做很是頻繁的操做之一)
mysqldump -uroot -proot test >/home/bak/test.sql(備份數據庫到指定的文件夾)
這種優點是導出很是快(navicate等工具遇到數據量比較大的時候,很是耗時間導出)
數據庫還原方法(導入後須要還原)
切換到進入mysql
Mysql -uroot -p;
Use test2;
而後
Source /home/bak/test.sql;
這樣就完成了代碼部分的導入還原工做
命令的優點:速度很是快(比用navicate快N倍,數量越大,差別越大)
3.批量修改數據庫的前綴(不少項目都須要統一前綴,或者須要更改前綴)
修改思路:從information.schems批量讀取對應數據庫的前綴用concat拼接出所須要修改的語句導出到一個sql文件,而後再用sql文件在對應的數據庫裏進行執行
Select CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO test_', substring(table_name,3),';' ) FROM information_schema.tables Where table_schema='test2' and table_name LIKE 'onethink_%' into outfile '/home/new.sql';
而後
Source /home/new.sql;
PS:這種操做方法是直接在mysql界面運行的操做,很是方便的批量改動了前綴(網上的教程用navicate顯得的比較複雜)這裏對sql語句作下說明:
Concat 是mysql的拼接函數 rename 重命名的意思 select * from tb1 into file ‘/home/test.sql’ 是將select語句導出的到指定文件夾
4.增長mysql用戶(數據庫管理須要給其餘成員管理的時候必須用到)
Create user ‘test’@’localhost’ identified by ‘123456’;
給mysql增長一個test的123456帳戶的語句
給其受權:(給對應的test用戶對test操做所有的權限)
Grant all on test to ‘test’@’localhost’ with grant option;
刪除對應的用戶
Drop user ‘test’@’localhost’;
給遠程用戶登陸(若是不給密碼,則遠程登陸的時候不須要密碼)
Grant all on ‘test’@’192.168.1.100’ identified by ‘123456’;
當前用戶登陸修改密碼(通常設置了帳戶後,用戶都須要登陸修改本身的密碼)
Set password = password(‘654321’);
5.將對應的字段轉化爲數據庫
新建數據庫(設計數據庫表的時候使用,在phpmyadmin,navicate,mysqlfront等工具裏也能夠直接本身創建,這裏是數據庫的執行語句模板,查看數據庫的生成語句show create datbase test)
CREATE TABLE `onethink_action` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`name` char(30) NOT NULL DEFAULT '' COMMENT '行爲惟一標識',
`title` char(80) NOT NULL DEFAULT '' COMMENT '行爲說明',
`remark` char(140) NOT NULL DEFAULT '' COMMENT '行爲描述',
`rule` text NOT NULL COMMENT '行爲規則',
`log` text NOT NULL COMMENT '日誌規則',
`type` tinyint(2) unsigned NOT NULL DEFAULT '1' COMMENT '類型',
`status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '狀態',
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改時間',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='系統行爲表';