linux 修改mysql服务名称_Linux-mysql服务级别对DB的操作要领[导出-导入(执行SQL)]及修改数据库名称...

A:docker容器的mysql

docker exec -it mysql bash -- 进入容器

备份脚本

mysqldump -uroot -p123456 --databases dbName > /sqldumps/dbName-`date +"%Y%m%d_%H%M%S"`.sql

压缩  tar -zcvf dbName.tar.gz ./dbName-20190217_113255.sql   ["dbName.tar.gz"压缩后的名字,“./dbName-20190217_113255.sql”被压缩的文件]

将容器中的文件复制到宿主机

docker cp :/sqldumps/test.sql  /home

scp 传输

将宿主机的文件复制到容器中

docker cp dbName.tar.gz mysql:/sqldumps/

解压 tar -zxvf dbName.tar.gz

docker exec -it mysql bash 进入容器

mysql -u root -p 进入mysql服务

[如果需要在指定数据库下执行]

[show databases;查看数据库;

use database; 进入数据库]

source  /tmp/xxx.sql

对于部署在docker容器里的mysql

直接将数据库备份到宿主机

docker exec -it mysql mysqldump -uroot -pttx2011 -hlocalhost --databases uco_wms_test > /home/ttx/app/mysqlbackfile/uco_wms_test_`date +"%Y%m%d_%H%M%S"`.sql

目录为宿主机目录

B:非docker容器的mysql,服务器上直接安装的mysql

备份脚本

mysqldump -uroot -p123456 --databases dbName > /sqldumps/dbName-`date +"%Y%m%d_%H%M%S"`.sql

mysql -u root -p 进入mysql服务

[如果需要在指定数据库下执行]

[show databases;查看数据库;

use database; 进入数据库]

source  /tmp/xxx.sql

【mysqldump -uroot -p123456 -hlocalhost --all-databases >/app/backfiles/all-database-`date +"%Y%m%d_%H%M%S"`.sql】这条备份全库的命令慎用,会导致一些sql配置不兼容,如,表,字段 的提示

C:MYSQL修改数据库名

1,使用shell脚本实现

mysqlconn="mysql -uroot -p123456"

#需要修改的数据库名

olddb="test1"

#修改后的数据库名

newdb="test2"

#创建新数据库

$mysqlconn -e "drop database if exists ${newdb};create database ${newdb};"

#获取所有表名

tables=$($mysqlconn -N -e "select table_name from information_schema.tables where table_schema='${olddb}'")

#修改表名

for name in $tables;do

$mysqlconn -e "rename table ${olddb}.${name} to ${newdb}.${name}"

done

#删除老的空库

#$mysqlconn -e "drop database ${olddb}"

2,使用存储过程实现

BEGIN

DECLARE i INT default 0;

DECLARE num int default 0;

DECLARE tableName varchar(50);

select num:=count(*) from information_schema.tables where table_schema='oldDBname'

WHILE i < @num DO

select tableName:=table_name from information_schema.tables where table_schema='oldDBname' LIMIT i,0

rename table `oldDBname`.`@tableName` to `newDBname`.`@tableName`;

SET i = i + 1 ;

SELECT @headerid headerids;

END WHILE ;

END

--------------------------利用命令直接内网复制数据库

首先创建一个数据库[用命令创建,或者在客户端创建都可]

命令创建数据库:

CREATE DATABASE `newdb` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

复制数据库,使用mysqldump及mysql的命令组合,一次性完成复制

#mysqldump db1 -uroot -p123456 --add-drop-table | mysql newdb -uroot -p123456

以上是在同一台MySQL服务器上复制数据库的方法。如果要复制到远程另一台MySQL服务器上,可以使用mysql的“ -h 主机名/ip”参数。前提是mysql允许远程连接,且远程复制的传输效率和时间可以接受。

不在同一个mysql服务器上

#mysqldump db1 -uroot -p123456 --add-drop-table | mysql -h 192.168.1.22 -p 3306 newdb -uroot -p123456

Windows本地使用命令链接mysql,作导入/导出操作

进入到mysql的安装路径[C:\Program Files\MySQL\MySQL Server 5.6\bin]

执行cmd

mysql -uroot -p123321

链接数据库服务,进行命令操作

linux计划任务执行脚本

crontab -e  给当前用户增加脚本

编辑完,ctrl+x退出  Yes 回车

/var/spool/cron/crontabs/用户名

脚本保存目录

重启cron

/etc/init.d/cron restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值