您的位置:首页 > 数据库 > MySQL

【转】mysql 常用命令

2009-07-01 15:14 288 查看
1、系统管理
连接MYSQL(在mysql/bin)mysql -h主机地址 -u用户名 -p mysql 3306 127.0.0.1 root root
退出MYSQL命令exit
修改密码(在mysql/bin)mysqladmin -u用户名 -p旧密码 password新密码
用户授权
grantselect[insert][,update][,delete]on数据库.*to用户名
@localhost("%", 表示任何主机)identifiedby "密码"
增加用户
mysqldump –u root –p opt数据库名>备份文件名
备份数据库(在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
[whereconditions_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)
“.”匹配任何单个的字符 一个字符类
[…]匹配方框内任何字符。例如[a],[asd],[az] 匹配任何小写字母,[09] 匹配任何数字。
“*”匹配零个或者多个在它前面的东西。 正则表达式区分大小写[aA]
如果它出现在被测试值的任何地方,模式都匹配
定位,在模式开始处用“^”,结尾处用“$”,例如“^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” intotable 表名
从文件中向表添加数据, 文件每行包括一条记录, 用定位符(tab) 把值分开。
drop database 库名 删除数据库
drop table 表名 删除数据库中的表
delete from表名where 删除数据库表中的记录
Update表名set字段=”值” wherewhereconditions_to_satisfy
更新数据库表中记录的值

===============================================================================

1、启动MySQL服务器

两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。 二是在DOS方式下运行 d:\mysql\bin\mysqld
(假设mysql 安装在d:\mysql);当然也可以 net start mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld start”命令,注 意启动者应具有管理员权限。

2、进入mysql交互操作界面

在DOS方式下,运行: d:\mysql\bin\mysql
出现: mysql 的提示符” mysql> “,此时已进入mysql的交互操作方式。
如果出现 “ERROR 2003: Can′t connect to MySQL server on ′localhost′ (10061)“,说明你的MySQL还没有启动。

3、退出MySQL操作界面

在mysql>提示符下输入quit可以随时退出交互操作界面:  
mysql> quit
Bye

4、第一条命令(多条命令用 “,” 分隔 ,一条命令可以分成多行输入,直到出现分号”;”为止

mysql> select version(),current_date();
mysql>Select (20+5)*4;
mysql>Select (20+5)*4,sin(pi()/3);
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)

5、常用sql 语句

1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:2、创建一个数据库MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values (”hyq”,”M”);
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex=”f” where name=’hyq’;
13:插入数据
mysq>linsert into MYTABLE values (1, ‘第二章’, 0×2134545);
14:登录后使用数据库 mysql
mysql -u root -p mysql
mysql -u root -p -h 11.11.11.11 database
15:mysql jdbc连接url 使用中文
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312

[separator]

其它:
show processlist;列出每一笔联机的信息。
show varlables;列出mysql的系统设定。
show tables from db_name;列出db_name中所有数据表;
show [full] columns from table_name;列出table_name中完整信息,如栏名、类型,包括字符集编码。
show index from table_name; 列出table_name中所有的索引。
show table status;;列出当前数据库中数据表的信息。
show table status from db_name;;列出当前db_name中数据表的信息。
alter table table_name engine innodb|myisam|memory ;更改表类型
explain table_name / describe table_name ; 列出table_name完整信息,如栏名、类型。
show create table table_name 显示当前表的建表语句
alter table table_name add primary key (picid) ; 向表中增加一个主键
alter table table_name add column userid int after picid 修改表结构增加一个新的字段
alter table table_name character set gb2312 改变表的编码
select user(); 显示当前用户。
select password(’root’); 显示当前用户密码
select now(); 显示当前日期
flush privileges 在不重启的情况下刷新用户权限
mysqld –default-character-set=gb2312 ;设置默认字符集为gb2312

6、安全

刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:

use mysql;
delete from User where User=”";
update User set Password=PASSWORD(’newpassword’) where User=’root’;

改完重启 mysql 才能生效.

上面命令参数是常用参数的一部分,详细情况可参考文档。此处的mydb是要登录的数据库的名称。
在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理 技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用 户。其中GRANT的常用用法如下:

grant all on mydb.* to NewUserName@HostName identified by “password” ;
grant usage on *.* to NewUserName@HostName identified by “password”;
grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”;
grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;
grant all privileges on *.* to root@localhost
grant select,insert,delete,update,alter,create,drop on lybbs.* to NewUserName@”%” identified by “lybbs”;

若要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH GRANT OPTION选项。而对于用插入User表添加的用户,Password字段应用PASSWORD 函数进行更新加密,以防不轨之人窃看密码。对于那些已经不用的用户应给予清除,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段, 也可以使用REVOKE操作。

全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录–其它什么也不允许做。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: