㈠ MySQL数据库备份和还原的常用命令
1.备份MySQL数据库的命令
mysqlmp-hhostname-uusername-ppassworddatabasename>backupfile.sql
2.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqlmp-_add-drop-table-uusername-ppassworddatabasename>backupfile.sql
3.直接将MySQL数据库压缩备份
mysqlmp-hhostname-uusername-ppassworddatabasename|gzip>backupfile.sql.gz
4.备份MySQL数据库某个(些)表
mysqlmp-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2>backupfile.sql
5.同时备份多个MySQL数据库
mysqlmp-hhostname-uusername-ppassword_>multibackupfile.sql
6.仅仅备份灶此数据库结构
mysqlmp_no-data_>structurebackupfile.sql
7.备份服务器上所有数据库
mysqlmp_all-databases>allbackupfile.sql
8.还原MySQL数据库的命令
mysql-hhostname-uusername-ppassworddatabasename<backupfile.sql
9.还隐碰迅原压缩的MySQL数据库
gunzip<backupfile.sql.gz|mysql-uusername-ppassworddatabasename
10.将数据库转移到新服吵缺务器
mysqlmp-uusername-ppassworddatabasename|mysql_host=*.*.*.*-Cdatabasename
㈡ 那有比较全的MySql命令啊
1. 连接mysql:
mysqlbinmysql -h主机地址 -u 用户名 -p 用户密码
2.退出mysql:exit
3. 修改密码:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword
4.增加用户:
添加一个用户test1 密码为ABC;让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入
mysql,然后键入以下命令:grant select,insert,update,delete on *.* to test1@"%" Identified
by "abc";
增加一个用户test2密码为abc,让其只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地
主机,即mysql数据库所在的那台主机),这样用户即使用知道test2的密码,也无法从internet上直接访问数据库,只能通过mysql主机上的web页
来访问了。grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
增加一个可以从任何地方连接服务器的一个完全的超级用户
grant all privileges on *.* to test3@"%" identified by 'password' with grant option;
5.删除授权
revoke select,insert,update,delete om *.* from test2@localhost ;
--------------------------------------------------------
6.显示数据库
show databases;
7.显示数据库中的表
use dataname;
show tables;
8.显示表的结构
describe tablesname;
9.建库
create database 库名;
10.建表
use dataname;
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表结束
//以下为插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
注:在建表中
(1) 将ID设为长度为3的数字字段:int(3),并让它每个记录自动加一: auto_increment,
并不能为空:not null,而且让它成为主字段primary key
(2) 将NAME设为长度为10的字符字段
(3) 将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别
呢,只有等以后的文章再说了。
(4) 将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。 你可以将以上命令
原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录
mysql in,然后键入以下命令:
mysql -uroot -p密码 < c:school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你
只要将//的注释去掉即可使用)。
11.删除库和删除表
drop dataname;
drop tablename;
12.将表中的记录清空
delete from tablename;
13.显示表中的记录
select * from tablename;
14.表重命名
alter table t1 rename t2
---------------------------------------------------------
15. 备份数据库
mysqlbinmysqlmp -h(ip) -uroot -p(password) databasename > database.sql
16. 恢复数据库
mysqlbinmysql -h(ip) -uroot -p(password) databasename < database.sql
17.复制数据库
mysqlmp --all-databases > all-databases.sal
18.备份表
mysqlbinmysqlmp -h(ip) -uroot -p(password) databasename tablename > tablename.sql
19.恢复表(操作前先把原来的表删除)
mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql
----------------------------------------------------------
20.为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一个新TIMESTAMP列,名为d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一个索引,并且使列a为主键:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
删除列c:
ALTER TABLE t2 DROP COLUMN c;
增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,
因为索引了的列不能是NULL
---------------------------------------------------------------
21.数据的导入导出
A。mysqlimport
语法:mysqlbinmysqlimport database tables.txt( 文件名需要与表名相同)
参数:-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息;
-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据;
-i or --ignore mysqlimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略;
-l or -lock-tables 数据被插入之前锁住表,这样就防止了, 你在更新数据库时,用户的查询和更新受到影响;
--fields-enclosed- by= char
指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。
--fields-terminated- by=char
指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符
(Tab)
--lines-terminated- by=str
此选项指定文本文件中行与行之间数据的分隔字符串 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 您可以选择用一个字
符串来替代一个单个的字符: 一个新行或者一个回车。
mysqlimport命令常用的选项还有-v 显示版本(version), -p 提示输入密码(password)等。
--------------------------------------------------------------
22.常用插入、修改、删除语句
插入记录:insert into teacher values('','glchengang','深圳一中','1976-10-10');
修改记录:update mytable set single=′y′ where name=′abccs′;
删除记录:delete from mytable where name=′abc′;
㈢ 如何用命令行备份mysql下所有数据库
关键字: mysql 还原或者导入数据库命令:
mysql -u root --password=root
备份数据库命令:
mysqlmp -u root --password=root --database helloworld >helloworld_backup.sql
其他用法:
1.导出整个数据库
mysqlmp -u 用户名 -p 数据库名 > 导出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqlmp -u 用户名 -p 数据库名表名> 导出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc_db.sql
㈣ mysql 命令行你知多少
Usage: mysql [OPTIONS] [database] //命令方式
-?, --help //显示帮助信息并退出
-I, --help //显示帮助信息并退出
--auto-rehash //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子
-A, --no-auto-rehash //默认状态是没有自动补全功能的。-A就是不要自动补全功能
-B, --batch //ysql不使用历史文件,禁用交互
(Enables --silent)
--character-sets-dir=name //字体集的安装目录
--default-character-set=name //设置数据库的默认字符集
-C, --compress //在客户端和服务器端传递信息时使用压缩
-#, --debug[=#] //bug调用功能
-D, --database=name //使用哪个数据库
--delimiter=name //mysql默认命令结束符是分号,下面有例子
-e, --execute=name //执行mysql的sql语句
-E, --vertical //垂直打印查询输出
-f, --force //如果有错误跳过去,继续执行下面的
-G, --named-commands
/*Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.*/
-g, --no-named-commands
/*Named commands are disabled. Use \* form only, or use
named commands only in the beginning of a line ending
with a semicolon (;) Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.*/
-i, --ignore-spaces //忽视函数名后面的空格.
--local-infile //启动/禁用 LOAD DATA LOCAL INFILE.
-b, --no-beep //sql错误时,禁止嘟的一声
-h, --host=name //设置连接的服务器名或者Ip
-H, --html //以html的方式输出
-X, --xml //以xml的方式输出
--line-numbers //显示错误的行号
-L, --skip-line-numbers //忽略错误的行号
-n, --unbuffered //每执行一次sql后,刷新缓存
--column-names //查寻时显示列信息,默认是加上的
-N, --skip-column-names //不显示列信息
-O, --set-variable=name //设置变量用法是--set-variable=var_name=var_value
--sigint-ignore //忽视SIGINT符号(登录退出时Control-C的结果)
-o, --one-database //忽视除了为命令行中命名的默认数据库的语句。可以帮跳过日志中的其它数据库的更新。
--pager[=name] //使用分页器来显示查询输出,这个要在linux可以用more,less等。
--no-pager //不使用分页器来显示查询输出。
-p, --password[=name] //输入密码
-P, --port=# //设置端口
--prompt=name //设置mysql提示符
--protocol=name //使用什么协议
-q, --quick //不缓存查询的结果,顺序打印每一行。如果输出被挂起,服务器会慢下来,mysql不使用历史文件。
-r, --raw //写列的值而不转义转换。通常结合--batch选项使用。
--reconnect //如果与服务器之间的连接断开,自动尝试重新连接。禁止重新连接,使用--disable-reconnect。
-s, --silent //一行一行输出,中间有tab分隔
-S, --socket=name //连接服务器的sockey文件
--ssl //激活ssl连接,不激活--skip-ssl
--ssl-ca=name //CA证书
--ssl-capath=name //CA路径
--ssl-cert=name //X509 证书
--ssl-cipher=name //SSL cipher to use (implies --ssl).
--ssl-key=name //X509 密钥名
--ssl-verify-server-cert //连接时审核服务器的证书
-t, --table //以表格的形势输出
--tee=name //将输出拷贝添加到给定的文件中,禁时用--disable-tee
--no-tee //根--disable-tee功能一样
-u, --user=name //用户名
-U, --safe-updates //Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-mmy //Synonym for option --safe-updates, -U.
-v, --verbose //输出mysql执行的语句
-V, --version //版本信息
-w, --wait //服务器down后,等待到重起的时间
--connect_timeout=# //连接前要等待的时间
--max_allowed_packet=# //服务器接收/发送包的最大长度
--net_buffer_length=# //TCP / IP和套接字通信缓冲区大小。
--select_limit=# //使用--safe-updates时SELECT语句的自动限制
--max_join_size=# //使用--safe-updates时联接中的行的自动限制
--secure-auth //拒绝用(pre-4.1.1)的方式连接到数据库
--server-arg=name //Send embedded server this as a parameter.
--show-warnings //显示警告