mysql备份及查询常用命令

By | 2015 年 9 月 10 日

 创建数据库

注意:创建数据库之前要先连接Mysql服务器

命令:create database <数据库名>

例1:建立一个名为xhkdb的数据库
mysql> create database xhkdb;

例2:创建数据库并分配用户

①CREATE DATABASE 数据库名;

②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY ‘密码’;

③SET PASSWORD FOR ‘数据库名’@’localhost’ = OLD_PASSWORD(‘密码’);

依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。

 

显示数据库
命令:show databases (注意:最后有个s)
mysql> show databases;

注意:为了不再显示的时候乱码,要修改数据库默认编码。以下以GBK编码页面为例进行说明:

1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk
2、代码运行时修改:
①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
②PHP代码:header(“Content-Type:text/html;charset=gb2312”);
③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);
该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

 删除数据库

命令:drop database <数据库名>
例如:删除名为 xhkdb的数据库
mysql> drop database xhkdb;

例子1:删除一个已经确定存在的数据库
mysql> drop database drop_database;
Query OK, 0 rows affected (0.00 sec)

例子2:删除一个不确定存在的数据库
mysql> drop database drop_database;
ERROR 1008 (HY000): Can’t drop database ‘drop_database’; database doesn’t exist
//发生错误,不能删除’drop_database’数据库,该数据库不存在。
mysql> drop database if exists drop_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)//产生一个警告说明此数据库不存在
mysql> create database drop_database;
Query OK, 1 row affected (0.00 sec)
mysql> drop database if exists drop_database;//if exists 判断数据库是否存在,不存在也不产生错误
Query OK, 0 rows affected (0.00 sec)

mySQL数据库使用命令行备份|MySQL数据库备份命令

例如:

数据库地址:127.0.0.1

数据库用户名:root

数据库密码:pass

数据库名称:myweb

备份数据库到D盘跟目录

mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql

备份到当前目录 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库

mysqldump –add-drop-table -h127.0.0.1 -uroot -ppass myweb > backupfile.sql

直接将MySQL数据库压缩备份 备份到D盘跟目录

mysqldump -h127.0.0.1 -uroot -ppass myweb | gzip > d:/backupfile.sql.gz

备份MySQL数据库某个(些)表。此例备份table1表和table2表。备份到linux主机的/home下
mysqldump -h127.0.0.1 -uroot -ppass myweb table1 table2 > /home/backupfile.sql

同时备份多个MySQL数据库

mysqldump -h127.0.0.1 -uroot -ppass –databases myweb myweb2 > multibackupfile.sql

仅仅备份数据库结构。同时备份名为myweb数据库和名为myweb2数据库

mysqldump –no-data -h127.0.0.1 -uroot -ppass –databases myweb myweb2 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases -h127.0.0.1 -uroot -ppass > allbackupfile.sql

还原MySQL数据库的命令。还原当前备份名为backupfile.sql的数据库

mysql -h127.0.0.1 -uroot -ppass myweb < backupfile.sql

还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -h127.0.0.1 -uroot -ppass myweb

将数据库转移到新服务器。此例为将本地数据库myweb复制到远程数据库名为serweb中,其中远程数据库必须有名为serweb的数据库

mysqldump -h127.0.0.1 -uroot -ppass myweb | mysql –host=***.***.***.*** -u数据库用户名 -p数据库密码 -C serweb

 

2,  用mysql 命令进行恢复:
mysql  -hlocalhost  -uroot  -proot          temp  < temp_20071106.sql
输入此命令后,数据库中的数据将恢复到备份时的数据.
注意:恢复时, temp 必须存在,数据库可空.恢复时会自动删除要恢复的表,再重新创建,插入数据.

 

还原部分分(1)mysql 命令行source方法 和 (2)系统命令行方法

1.还原全部数据库:
(1) mysql 命令行:mysql >source f:\all.sql
(2) 系统命令行: mysql -uroot -p123456 <f:\all.sql

2.还原单个数据库(需指定数据库)
(1) mysql >use mydb
mysql >source f:\mydb.sql
(2) mysql -uroot -p123456 mydb <f:\mydb.sql

3.还原单个数据库的多个表(需指定数据库)
(1) mysql >use mydb
mysql >source f:\multables.sql
(2) mysql -uroot -p123456 mydb <f:\multables.sql

4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
(1) mysql 命令行:mysql >source f:\muldbs.sql
(2) 系统命令行: mysql -uroot -p123456 <f:\muldbs.sql

发表评论

电子邮件地址不会被公开。 必填项已用*标注