1、系统管理

mysql -h主机地址 -u用户名 p

mysql -h127.0.0.1 -uroot -p123456

连接MYSQL   (在mysql/bin

exit

退出MYSQL命令

mysqladmin -u用户名 -p旧密码  password 新密码

mysqladmin –u root –p password '654321' //设置密码为654321

修改密码(在mysql/bin

grant select [insert][,update][,delete]on 数据库.* to 用户名@localhost"%",表示任何主机) identified by "密码"

grant select,insert,update,delete on nnzx.* to nnzx@localhost identified by "nnzx342";

增加用户

mysqldump –u root –p --opt 数据库名>备份文件名

 

mysqldump –u root –pjet14mysql --opt hubeiburnscenter > /hubeiburnscenter.sql

备份数据库(在mysql/bin

mysql –u root –p < batch-file (例如备份文件名)

 

使用批处理

mysql.server start

启动服务器

mysql.server stop

停止服务器

msql.server --log

 

 

2、查询命令

select version()

查询版本号

select current_date

查询当前日期

 

3、显示命令

show databases

显示数据库列表

show tables

显示库中的数据表

describe 表名

显示数据表的结构

select * from 表名

显示表中的记录

select what_to_select from which table [where conditions_to_satisfy and (or) where conditions_to_satisfy]

从一个表中检索数据『满足条件』

select 字段1,字段2 , from 表名

显示特定的列

select * from 表名 order by 字段名

排序行

select 字段1,包含字段2的运算式 as 新字段 from 表名

字段值运算操作

select 字段1 is nullis not null

空值操作

Select * from 表名 where 字段名 likenot like 字符

注:允许使用“_”匹配任何单个字符,而“%”匹配任意数目字符。

模式匹配

Select * from 表名 where 字段名 regexpnot regexp)或者rlikenot rlike

l         .”匹配任何单个的字符

l         一个字符类[…]匹配方框内任何字符。例如[a][asd][a-z]匹配任何小写字母,[0-9]匹配任何数字。

l         *”匹配零个或者多个在它前面的东西。

l         正则表达式区分大小写[aA]

l         如果它出现在被测试值的任何地方,模式都匹配。

l         定位,在模式开始处用“^”,结尾处用“$”,例如“^b

扩展正则表达式

Select count(*) from 表名

Select 字段名,count(*) from 表名 group by 字段名

行计数

 

4、编辑命令

use database 库名

使用的数据库

create database 库名

创建数据库

create table 表名

在数据库中创建表

insert into 表名 values (“data”,”data”)

向表中添加记录

Load data infile “/path/filename” into table 表名

从文件中向表添加数据,文件每行包括一条记录,用定位符(tab)把值分开。

drop database 库名

删除数据库

drop table 表名

删除数据库中的表

delete from 表名 where

删除数据库表中的记录

Update 表名 set 字段=” where where conditions_to_satisfy

更新数据库表中记录的值

下面的代码实现了取消sss用户的所有权限的功能。
mysql> revoke all on *.* from efortune@localhost;
Query OK, 0 rows affected (0.00 sec)
REVOKE语句只能取消用户的权限,而不可以删除用户。即使取消了所有的权限,用户仍然可以连接到服务器。要想彻底的删除用户,必须使用DELETE语句将该用户的记录从MySQL数据库中的user表中删除。该语句的语法格式如下:
Delete from user where user = "user_name" a nd host = "host_name";
使用DELETE删除用户sss,代码如下:
mysql> use mysql
Database changed
mysql>delete from user where user='efortune' and host='localhost';
mysql>flush privileges;
Query OK, 1 row affected (0.02 sec)
其中,delete用于删除用户,flush告诉服务器重新加载授权表。

备份 MySQL 数据库.
mysqldump -u用户名 -p密码 数据库名 > 导出文件名
mysqldump -uroot -ppassword --opt db_name > backupfile.sql   //备份整个数据库
Mysqldump –uroot –ppassword --skip-lock-tables dbname > dbname.sql

导入mysql
# 直接用mysql客户端.
mysql -uritto -p123456 db_name < db_name.sql
# 用SOURCE语法. (其实这不是标准的 SQL 语法, 而是 mysql 客户端提供的功能)
source /tmp/db_name.sql;
//这里需要指定文件的绝对路径, 并且必须是mysqld运行用户(例如 nobody)有权限读取的文件.

修复数据库
1,简单的修复模式
myisamchk -r -q path/数据库/坏表.MYI
注:-r ----恢复模式 -q ----快速修复

2,使用安全修复模式
myisamchk --safe-recover path/数据库/坏表.MYI

3,困难的修复模式
如果在索引文件的第一个16K块被破坏,或包含不正确的信息,或如果索引文件丢失,你只应该到这个阶段 。在这种情况下,创建一个新的索引文件是必要的。按如下这样做:
把数据文件移更安全的地方。
使用表描述文件创建新的(空)数据和索引文件:
shell> mysql db_name
mysql> Delete FROM tbl_name;
mysql> quit
将老的数据文件拷贝到新创建的数据文件之中。(不要只是将老文件移回新文件之中;你要保留一个副本以防某些东西出错。)回到阶段2。现在myisamchk -r -q应该工作了。(这不应该是一个无限循环)。

4,非常困难的修复模式
只有描述文件也破坏了,你才应该到达这个阶段。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了。
从一个备份恢复描述文件并且回到阶段3。你也可以恢复索引文件并且回到阶段2。对后者,你应该用myisamchk -r启动。
如果你没有一个备份但是确切地知道表是怎样被创建的,在另一个数据库中创建表的一个拷贝。删除新的数据文件,然后从其他数据库将描述和索引文件移到破坏的数据库中。这给了你新的描述和索引文件,但是让数据文件独自留下来了。回到阶段2并且尝试重建索引文件。

5,优化表结构
myisamchk -r 表
也可以使用sql语句来优化OPTIMIZE TABLE

6备份脚本
@echo off
mysqldump  -uroot -ppassword --opt uchome > E:\bak\"uchome%date%".sql
mysqldump  -uroot -ppassword --opt ucenter > E:\bak\"ucenter%date%".sql
mysqldump  -uroot -ppassword --opt testdz > E:\bak\"testdz%date%".sql
mysqldump  -uroot -ppassword --opt meilian > E:\bak\"meilian%date%".sql
mysqldump  -uroot -ppassword --opt yejihao > E:\bak\"yejihao%date%".sql