1.需要从A数据库完整复制一份到B数据库
直接在Linux下,如果是服务器复制到自己服务器本身
mysqldump test -u root -ppassword --add-drop-table | mysql test1 -u root -ppassword
使用的时候,会有以下的提示:(可以忽略该提示)
Warning: Using a password on the command line interface can be insecure.
如果是从本服务器复制到另外一台服务器,则是用以下语句:
Mysqldump test -uroot -ppassword --add-drop-table | mysql test1 -h 192.168.1.100 -uroot -ppassword
这样就完成了数据库的远程复制。
PS: mysqldump的默认参数是--add-drop-table 默认create表前都会删除以前的表,如果是
--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='系统行为表';
来源:oschina
链接:https://my.oschina.net/u/2374674/blog/598646