mysql 数据库修改名字

通过information_schema信息修改rename database的目的

  • mysql 没有rename database 命令,只能变相修改表到目标库里的表来实现:
  • 拼接reanme tables的执行语句
[email protected] [information_schema]>select concat(‘rename table sysbench_testdata.‘,table_name,‘ to wenyz.‘,table_name,‘;‘) from information_schema.tables where table_sschema=‘sysbench_testdata‘;
+----------------------------------------------------------------------------------+
| concat(‘rename table sysbench_testdata.‘,table_name,‘ to wenyz.‘,table_name,‘;‘) |
+----------------------------------------------------------------------------------+
| rename table sysbench_testdata.sbtest10 to wenyz.sbtest10;                       |
| rename table sysbench_testdata.sbtest2 to wenyz.sbtest2;                         |
| rename table sysbench_testdata.sbtest3 to wenyz.sbtest3;                         |
| rename table sysbench_testdata.sbtest4 to wenyz.sbtest4;                         |
| rename table sysbench_testdata.sbtest5 to wenyz.sbtest5;                         |
| rename table sysbench_testdata.sbtest6 to wenyz.sbtest6;                         |
| rename table sysbench_testdata.sbtest7 to wenyz.sbtest7;                         |
| rename table sysbench_testdata.sbtest8 to wenyz.sbtest8;                         |
| rename table sysbench_testdata.sbtest9 to wenyz.sbtest9;                         |
+----------------------------------------------------------------------------------+
9 rows in set (0.00 sec)
  • 改进:希望拼接语句直接导出到指定文件,再导入批量执行
[email protected] [information_schema]>select concat(‘rename table sysbench_testdata.‘,table_name,‘ to wenyz.‘,table_name,‘;‘) from information_schema.tables where table_schema=‘sysbench_testdata‘ into outfile ‘/tmp/1.sql‘ ;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
[email protected] [information_schema]>show variables like ‘%secure%‘;
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_auth              | ON    |
| secure_file_priv         | NULL  |
+--------------------------+-------+
3 rows in set (0.01 sec)

[email protected] [information_schema]>set global secure_file_priv=‘/tmp‘;
ERROR 1238 (HY000): Variable ‘secure_file_priv‘ is a read only variable
[email protected] [information_schema]>shutdown;
#vi /3506/my.cnf //增加以下参数:
secure_file_priv=/tmp
#/usr/local/mysql57/bin/mysqld --defaults-file=/3506/my3506.cnf & //再次启动:
[2] 22558
[[email protected]_14:04:44 /tmp]
#mysql --login-path=p3506
[email protected] [(none)]>select concat(‘rename table sysbench_testdata.‘,table_name,‘ to wenyz.‘,table_name,‘;‘) from information_schema.tables where table_schema=‘sysbench_testdata‘ into outfile ‘/tmp/1.sql‘ ;
Query OK, 9 rows affected (0.00 sec)

[email protected] [(none)]>source /tmp/1.sql;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3
Current database: *** NONE ***

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

[email protected] [(none)]>use sysbench_testdata;
Database changed
[email protected] [sysbench_testdata]>show tables;
Empty set (0.00 sec)

[email protected] [sysbench_testdata]>use wenyz;
Database changed
[email protected] [wenyz]>show tables;
+-----------------+
| Tables_in_wenyz |
+-----------------+
| sbtest1         |
| sbtest10        |
| sbtest2         |
| sbtest3         |
| sbtest4         |
| sbtest5         |
| sbtest6         |
| sbtest7         |
| sbtest8         |
| sbtest9         |
| t2              |
+-----------------+
11 rows in set (0.00 sec)

原文地址:https://www.cnblogs.com/2woods/p/9406585.html

时间: 2024-08-12 09:15:25

mysql 数据库修改名字的相关文章

MySQL数据库修改密码&忘记密码

方法1:用SETPASSWORD命令 MySQL -uroot mysql> SET PASSWORD FOR'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin 如果root已经设置过密码,采用如下方法 mysqladmin-u root password "newpass" mysqladmin -u root passwordoldpass "newpass" 方法3:用UPDATE直接编辑u

MySQL数据库修改表名

MySQL数据库修改表名,比如把表FaceAppVersion 修改为AppVersion,SQL如下: rename table FaceAppVersion to AppVersion; 执行如下: rename table FaceAppVersion to AppVersion > OK > 时间: 0.033s 原文地址:https://www.cnblogs.com/JohanChan/p/12058967.html

MySQL数据库改名字

在这里首先感谢那个网上已经给出了解决办法的同志 有很多MySQL数据库的初学者可能都会遇到一个关于改名字的问题,可能大家第一时间就会想到去网上搜搜,其实我跟大家的心理是一样的(呵呵). 据我所知,MySQL数据库改表名的语句是RENAME TABLE old_table_name to new_table_name,可能大家会说那改数据库的名字也是差不多的呀(如果你们用的是很早的版本,那你们是对的,但是我们现在绝大多数用的是很新的5.x版本) 接下来说说具体的两种方法吧 1.在默认MyISAM存

mysql数据库修改数据库编码,字段编码与表编码(转)

最近看了一下KIGG框架,发现在用EF + MYSQL数据库时,数据出现了乱码,用工具(Navicat )查看一下表category的结构发现 KIGG 数据库的默认情况是用latin1编码的(DEFAULT CHARSET=latin1), 如下: CREATE TABLE `category` ( `Id` binary(16) NOT NULL, `UniqueName` varchar(64) NOT NULL, `Name` varchar(64) NOT NULL, `Created

mysql数据库修改root密码方法

Window下修改mysql超级管理员root密码的方法 1停止服务 开始->运行->输入cmd,打开命令提示符窗口,然后输入  net stop mysql  ,停止mysql相关服务 2在命令提示符窗口进去mysql安装目录的bin目录 若是其他盘,请先切换到其他盘 例如 输入 D: 回车即可:然后输入cd 文件路径 例如 cd D:\wamp\bin\mysql\mysql5.5.20\bin 即可进入该文件夹下 3进入mysql安全模式(这样就不需要输入密码就可以进入mysql数据库了

mysql 数据库修改用户名和密码

因为经常修改数据库密码,也找到了几种修改数据库密码的方式,在这里给大家介绍下供大家参考通过navicat 管理数据库客户端来修改数据库密码: 选择数据库 --- 点击导航条的用户  --- 编辑用户 --- 即可修改数据库. 命令行修改数据库密码: 1.打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址 2.打开cmd命令提示符,进入上一步mysql.exe所在的文件夹. 3.输入命令  mysqld --skip-grant-tables  回车,此时就跳过了mysql的用

Mysql数据库修改root密码的几种实用方法

操作系统环境:CentOS6.6 数据库:Mysql 方法1: 用SET PASSWORD命令 [[email protected] ~]#mysql -u  root-p mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('设置新密码'); 方法2:用mysqladmin [[email protected] ~]#mysqladmin  -u  root password "设置新密码"   //首次,设置mysql数

mysql数据库修改主键自增及出现的问题

1.创建数据库: create database user ( uid int not null, username varchar(25) not null, password varchar(25) not null. primary key(uid) ); 该语句创建的数据库的主键是user,但是没有设置改字段自增,第一条数据就从0开始.向数据库插入第二条数据而不指定uid的时候就会报错.那如何修改该字段使其自增呢? alert table user modify uid int(4)au

mysql数据库修改编码

在linux下修改/etc/mysql/my.cnf文件在找到[mysqld] 添加[mysqld]character-set-server=utf8collation-server=utf8_general_cidefault-character-set=utf8init_connect='SET NAMES utf8' 找到客户端配置[client] 在下面添加[client]default-character-set=utf8 service mysqld restart