MySQL常用命令大全
为方便查询,特整理MySQL常用命令,如下。所有命令都亲手检验过,请放心使用:)
约定:$后为Shell环境命令,>后为MySQL命令。
1常用命令
第一步,连接数据库。
$mysql-uroot-p #进入MySQLbin目录后执行,回车后输入密码连接。 #常用参数:-h服务器地址,-u用户名,-p密码,-P端口
然后是一些常用的命令。
数据库操作:
>createdatabasedbname; #创建数据库,数据库名为dbname >CREATEDATABASE`todo`DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;#创建todo数据库,并指定字符集 >showdatabases;#显示所有数据库 >alterdatabasecharactersetutf8;#修改数据库字符集 > usedbname; #选择数据库 > status; #查看当前选择(use)的数据库 > dropdatabasedbname; #删除数据库
数据表操作:
> showtables; #显示所有表 > describetablename; #表结构详细描述 >desctablename;#同describe命令一样 >createtablenewtablelikeoldtable;#复制表结构 >insertintonewtableselect*fromoldtable;#复制表数据 >renametabletablelnametonew_tablelname#重命名表,同时命名多个表用逗号“,”分割 >droptabletablename; #删除表
界面操作:
>selectversion(),current_date; #显示当前mysql版本和当前日期 >exit #返回Shell命令行
2创建数据表
createtable命令用来创建数据表,格式:
createtable<表名>(<字段名1><类型1>[,..<字段名n><类型n>]);
数据的类型之后还可以包含:数据宽度+是否为空+是否主键+自动增加+默认值,它们书写时不限顺序。但是字段名和字段类型必须是第一和第二位。例如,建立一个名为user的表:
mysql>createtableuser( ->idint(4)notnullprimarykeyauto_increment, ->namechar(20)notnull, ->sexint(4)notnulldefault'0', ->degreedouble(16,2) ->);
3修改root的密码
$mysqladmin-urootpassword#原始密码为空的情况 Newpassword:<输入新的密码> Confirmnewpassword:<再次输入新密码> $mysqladmin-uroot-ppassword#原始密码不为空的情况 Enterpassword:<输入旧的密码> Newpassword:<输入新的密码> Confirmnewpassword:<再次输入新密码> $mysqladmin-uroot-p123456password#原始密码不为空的情况,效果和第二种方法一样,只是显式的输入了原始密码 Newpassword:<输入新的密码> Confirmnewpassword:<再次输入新密码>
4备份和恢复
$mysqldump-uroot-pdbname>dbname.sql#备份整个数据库(包含表结构和数据) $mysqldump-uroot-p-ddbname>dbname.sql#备份数据库表结构,不包含数据, $mysqldump-uroot-pdbnametablename>tablename.sql#备份数据库中的某张数据表(包含表结构和数据) $mysqldump-uroot-pdbnametablename1tablename2>tables.sql#备份数据库中2张数据表 $mysqldump-uroot-p-ddbnametablename>tablename.sql#备份数据库中的某张数据表的表结构(不含数据) $mysqladmin-uroot-pcreatedbname#恢复数据库步骤1:创建数据库 $mysql-uroot-pdbname<dbname.sql#恢复数据库步骤2:恢复数据
如果是网络上的服务器,可以在mysqldump之后用-h指定服务器地址,例如:
$mysqldump-hsql.domain.com-uroot-pdbname>dbname.sql
导出查询结果到本地计算机:
mysql-h127.0.0.1 -P3306-uroot-proot -Ae"usetest;select* fromuserwherestatus=4orderbyid desc;">"C:\Users\Gary\user.txt"
5用户和权限管理
MySQL默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。如果在项目中要连接MySQL数据库,则建议新建一个权限较小的用户来连接。在MySQL命令行模式下输入如下命令可以为MySQL创建一个新用户:
>CREATEUSERusernameIDENTIFIEDBY'123456';#其中,username是用户名,123456是用户密码
新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令是grant,格式为:
GRANT<权限> ON<数据库>.<表名>TO<用户名>@<登录主机>IDENTIFIEDBY"<密码>"
其中,权限可以是:all、select、insert、delete、update、drop等值。
于是,用下面的命令就可以执行特定的功能:
>GRANTALLON*.*TO'username'@'localhost'IDENTIFIEDBY'123456';#给用户username分配所有数据库的所有权限 >REVOKEALLON*.*FROM'username'@'localhost';#如果觉得上面的权限太大,用REVOKE删除原来权限 >GRANTALLONdbname.*TO'username'@'localhost'IDENTIFIEDBY'123456';#重新授予仅在dbname数据库上的权限 >GRANTSELECT,UPDATEONdbname.*TO'username'@'localhost'IDENTIFIEDBY'123456';#仅授予select、update权限,无法执行insert、delete等命令 >FLUSHPRIVILEGES;#每当调整权限后,通常需要用这个命令刷新权限 >DROPUSERusername@localhost;#删除用户
仔细观察上面几个命令,可以发现不管是授权,还是删除授权,都要指定响应的host(即@符号后面的登录主机,主机也可以用%通配符表示所有主机,或者192.168.1.% 表示特定主机段)。因为以上及格命令实际上都是在操作mysql数据库中的user表,可以用如下命令查看相应用户及对应的host:
SELECTuser,hostFROMuser;
当然,这个表中还包含很多其它例如用户密码、权限设置等很多内容,操作时候尤其需要小心。
参考资料:
- 如何重设MySQL的root密码
- MySQL数据库常用命令小结
- 使用mysqldump备份、恢复mysql数据库
- MySQL用户管理及权限管理
- mysql用户与权限管理笔记