安全快速修改Mysql数据库名的5种方法

摘要:
  1. mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.SQL mysql -uxxxx -pxxxx -h xxxx -e
  2. 1. RENAME DATABASE db_name TO new_db_name 这个
  3. mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.SQL mysql -uxxxx -pxxxx -h xxxx -e
  4. RENAME TABLE db_name.table1 TO new_db_name.table1
  5. CREATE DATABASE new_db_name

关键词: 数据库Mysql

1. RENAME DATABASE db_name TO new_db_name

这个。。这个语法在mysql 5.1.7中被添加进来,到了5.1.23又去掉了。
据说有可能丢失数据。还是不要用的好。
详见: http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

2.如果所有表都是MyISAM类型的话,可以改文件夹的名字
关闭mysqld
把data目录中的db_name目录重命名为new_db_name
开启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导出数据再导入

复制代码 代码如下:
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的优化版。

小编注:以上这些操作都是危险的,所以请在执行操作前,备份你的数据库!!

    </div>
相关阅读

常用的Mysql数据库操作语句大全

   4、CREATE PROCEDURE (创建存储过程)     CREATE PROCEDURE pro([ parameters ])     BEGIN     ........     END    5、CREATE TABLE(创建表)     CREATE TABLE tb_name(     column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]  ;    >CREATE TABLE tb_name2 SELECT * FROM tb_name;    >CREATE TABLE tb_name2 SELECT id;防止数据库中文乱码     如果有条件的创建数据表还可以使用   >CREATE TABLE IF NOT EXISTS tb_name(........   2、复制表;         //删除指定存储过程 十五、使用游标

[转]MySQL Explain详解

可通过该列计算查询中使用的索引的长度(key_len显示的值为索引字段的最大可能长度;即哪些列或常量被用于查找索引列上的值   九、rows  表示MySQL根据表统计信息及索引选用情况;  五、possible_keys 指出MySQL能使用哪个索引在表中找到记录;执行时甚至不用访问表或索引;创造一个适当的索引并且再次用EXPLAIN检查查询   六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引

【MySQL】MySQL的四种事务隔离级别

事务A读取了事务B更新的数据;而本事务中的SELECT会读到这些未被提交的数据(脏读);客户端B的事务居然可以修改客户端A事务查询到的行;      (4)客户端B的事务提交     (5)客户端A执行与上一步相同的查询;要想解决这个问题可以采用读已提交的隔离级别     2、读已提交     (1)打开一个客户端A

谈谈MySQL隐式类型转换

写的SQL的参数类型与数据库中字段类型一致;写SQL时一定要检查参数类型与数据库字段类型一致;字符串转换为数字 mysql > SELECT 1+'1';我们来看看今天的主角------MySQL隐式类型转换 什么隐式类型转换;我们再多看看几个隐式类型转换案例

超详细MySQL安装及基本使用教程

5、关于修改数据库名字 在低版本的MySQL中提供了一个命令rename来修改数据库的名称(注意不是数据库的表);设置root密码然后点击next进入下一步;选择第一个然后点击next进入下一步;输入密码后就会进入MySQL的操作管理界面;安装完成后进入MySQL的安装目录

MYSQL中字段char类型和varchar类型的区别

这样varchar在存储不确定长度的时候会大大减少存储空间; char是一种固定长度的类型;varchar则是一种可变长度的类型;那我varchar(8)和varchar(255)存储应该都是一样的;      在varchar(M)类型的数据列里

MySQL存储过程与存储函数的区别

比如cos()、hex() 存储过程只能通过call语句进行调用 4、参数的不同 存储函数的参数类型类似于IN参数 存储过程的参数类型有三种、IN参数、OUT参数、INOUT参数   ------------------------------------------ 存储过程是用户定义的一系列sql语句的集合;存储过程将返回一个或多个结果集(函数做不到这一点);2、返回值上的不同 存储函数将向调用者返回一个且仅返回一个结果值;  2)对于存储过程来说可以返回参数;SQL语句中不可用存储过程

MySQL的四种事务隔离级别

3 rows in set (0.00 sec)     (5) 在客户端A提交事务;事务A读取了事务B更新的数据;查询表account     (2)在客户端A的事务提交之前;      (4)客户端B的事务提交     (5)客户端A执行与上一步相同的查询;要想解决这个问题可以采用读已提交的隔离级别     2、读已提交     (1)打开一个客户端A

MySQL 中事务的实现

就会发生在 并行事务的原子性 一节中提到的级联回滚等问题;Active、Commited 和 Failed;事务被回滚并且数据库恢复到了事务进行之前的状态之后;大部分的数据库中都使用了 READ COMMITED 作为默认的事务隔离级别;事务的隔离级别 所以说数据库的隔离性和一致性其实是一个需要开发者去权衡的问题

MySQL 8.0 自带的4个系统数据库介绍

information_schema、mysql、performance_schema、sys;这个数据库保存了mysql服务器所有数据库的信息;mysql的核心数据库;比如数据库的名、数据库的表、访问权限、数据库表的数据类型;MYSQL的SYS数据库 mysql

本站所有帖子由该帖子作者发表,版权属于原作者,如有侵权请联系删除。


Copyright © 2020–2021. 编程技术网(www.editcode.net) ICP主体备案号:湘ICP备2021008236号