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