Home  >  Article  >  Database  >  mysql导入导出包括函数或者存储过程_MySQL

mysql导入导出包括函数或者存储过程_MySQL

WBOY
WBOYOriginal
2016-06-01 13:38:39777browse

bitsCN.com


mysql导入导出包括函数或者存储过程

 

1.mysql导出整个数据库

      mysqldump -h hostname -u username -p  databasename > backupfile.sql  

      如果root用户没用密码可以不写-p,当然导出的sql文件你可以制定一个路径,未指定则存放在mysql的bin目录下    

 

2.mysql导出数据库一个表

  mysqldump -hhostname -uusername -ppassword database  tablename> 导出的文件名

  mysqldump -hlocalhost -uroot hqgr t_ug_user> user.sql

3.mysql导出一个数据库结构

  mysqldump -hhostname -uusername -ppassword  -d --add-drop-table databasename>d:hqgrstructure.sql

  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.如果需要导出mysql里面的函数或者存储过程

      mysqldump -h  hostname -u  username   -ntd -R   databasename  > backupflie.sql  (包括存过过程和函数一次性完整导出)

     

        其中的 -ntd 是表示导出表结构和数据;-R是表示导出函数、存储过程

 

     可以参照mysqldump --help

 

mysql常用导入数据的命令:

      mysql数据库导入导出:

      mysqldump -u 用户名 -p 数据库名 > 数据库名.sql

      如:

   mysqldump -u root   -p         testdb  > testdb.sql (不包括存储过程和函数)

   mysqldump -u root   -p  -R   testdb  > testdb.sql (**包括存储过程和函数**)

 

     MySQL source命令向数据库中导入数据:

     mysql>use testdb;

    mysql>set names  utf8;

     mysql>source /tmp/bdc.sql;

                 

奇怪错误处理:

  下面是导出存储过程的代码

  1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名

  其中,-d 表示--no-create-db, -n表示--no-data, -t表示--no-create-info, -R表示导出function和procedure。所以上述代码表示仅仅导出函数和存储过程,不导出表结构和数据。但是,这样导出的内容里,包含了 trigger。再往mysql中导入时就会出问题,错误如下:

 

  ERROR 1235 (42000) at line **: This version of MySQL doesn't yet support ‘multiple triggers with the same action time and event for one table’

  所以在导出时需要把trigger关闭。代码为

  1 # mysqldump -u 数据库用户名 -p -n -t -d -R --triggers=false 数据库名 > 文件名

  这样导入时,会出现新的问题:

  ErrorCode:1418

  This function has none of DETERMINISTIC, NOSQL, or READS SQL DATA inits declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

  解决方法是,在/etc/my.cnf中找到[mysqld],在它下面添加这样一行:

  1 log-bin-trust-function-creators=1

 

创建数据库:CREATE DATABASE `total_admin` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

1.查看mysql大小

use 数据库名  SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH)  FROM information_schema.TABLES where TABLE_SCHEMA='数据库名';

得到的结果是以字节为单位,除1024为K,除1048576为M。

 

2.查看表的最后mysql修改时间select TABLE_NAME,UPDATE_TIME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='数据库名';

 

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn