安全快速修改Mysql数据库名的5种方法_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的优化版。

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

时间: 2024-10-22 21:09:17

安全快速修改Mysql数据库名的5种方法_Mysql的相关文章

使用phpMyAdmin修改MySQL数据库root用户密码的方法

  这篇文章主要介绍了使用phpMyAdmin修改MySQL数据库root用户密码的方法,需要的朋友可以参考下 点击顶部的"SQL"标签进入sql命令输入界面.输入以下命令: 代码如下:update mysql.user set password=PASSWORD('jb51$123456') where user='root'; 然后点击右下角的"执行",没有报错就表示修改成功. 另外需要注意的是,如果你修改了root密码之后我们的phpMyAdmin的配置文件中

Mysql数据库备份的几种方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 数据备份是一个网站能够正常运营的保障,数据备份包括网站源码备份和数据库备份,如果你使用的是ACCESS数据库,那么直接使用FTP下载数据库文件就可以了,但如果你使用了PHP+MYSQL进行网站建设,数据库备份就没有那么容易了.下面介绍几种mysql数据库备份的方法. 方法一:如果你使用的是虚拟主机,可以用使用phpmyadmin来备份数据库.

mysql安全修改mysql数据库名几种方法

如果是MyISAM的话.只要修改DATA目录下面的那个库名的文件夹的名字就OK了 如果是INNODB的话.其实是无法修改库名的.网上瞎咧咧的什么RENAME DATABASE或者ALTER DATABASE都是不行的 一种方法是比较保守的.直接把老库的内容mysqldump到新库里面 还有一种类似上面方法.先alter table 的存储引擎到MyISAM,然后改了库目录的名字,然后再改回来INNODB. 最后一种方法还是比较好的.这边详细写一下. 假设源库名是'srcdb',目标库名是'trg

shell批量修改MySQL存储引擎类型2种方法

MySQL存储引擎类型有哪些 MyISAM管理非事务表.提供高速检索,以及全文搜索能力. Memory存储引擎提供"内存中"表,MERGE存储引擎允许集合将被树立统一的MyISAM表做为一个单表.非事务表.可把多个myisam表构建为一个虚拟表,使得对这些表的查询仿佛在一个表上进行,提高了查询速度和修复效率,并节省了磁盘空间. InnoDB,BDB存储引擎提供事务安全表. EXAMPLE存储引擎是一个"存根"引擎,它不做什么.可以用这个引擎创建表,但没有数据被存储其

详解MySQL数据库设置主从同步的方法_Mysql

简介 MySQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力. MySQL主从同步的机制: MySQL同步的流程大致如下:      1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log).      2.从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log)     

修改mysql默认字符集的两种方法详细解析_Mysql

(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8    character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 复制代码 代码如下: +--------------------------+-----------

Mysql 数据库更新错误的解决方法_Mysql

语句: UPDATE test SET age=5 WHERE 'name'='王莽' 顾名思义就是把王莽的年龄改为5,但结果很无奈-- 影响行数为0,怎么回事,语法没错,哪里都没问题啊-- 随便改了改了,将name 的两个引号去掉,结果却无意间成功了-- 但是使用图形界面更改时,结果更让人迷惑-- 生成的代码是-- UPDATE `web`.`test` SET `age` = '20' WHERE `test`.`name` = '王莽' LIMIT 1 ; 百思不得其解中-- 通过比对,发

Ubuntu下取消MySQL数据库本机绑定限制方法_Mysql

出现问题:在Ubuntu系统中,添加了MySQL账户,赋予了数据库完全操作权限,并且允许数据库从外部链接但是,还是无法远程访问MySQL数据库. 原因:Ubuntu系统中,默认安装的MySQL限制了只有本机才能访问数据库 解决办法:取消MySQL数据库的本机绑定限制 nano /etc/mysql/my.cnf #编辑配置文件找到bind-address = 127.0.0.1 改为 #bind-address = 127.0.0.1ctrl+o #保存配置ctrl+x #退出/etc/init

使用phpMyAdmin修改MySQL数据库root用户密码的方法_MsSql

点击顶部的"SQL"标签进入sql命令输入界面.输入以下命令: 复制代码 代码如下: update mysql.user set password=PASSWORD('jb51$123456') where user='root'; 然后点击右下角的"执行",没有报错就表示修改成功. 另外需要注意的是,如果你修改了root密码之后我们的phpMyAdmin的配置文件中的密码也需要修改,否则登录不上去哦.找到 复制代码 代码如下: $cfg['Servers'][$i