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 null(is not null) | 空值操作 |
Select * from 表名 where 字段名 like(not like) “字符” 注:允许使用“_”匹配任何单个字符,而“%”匹配任意数目字符。 | 模式匹配 |
Select * from 表名 where 字段名 regexp(not regexp)或者rlike(not 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
转载于:https://blog.51cto.com/17610376/300900