2013年7月10日星期三

mysql命令

1、mysql登录

mysql –u 用户名 [–h主机名或者IP地址] –p 密码
说明:用户名是你登录的用户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户的密码。

mysql 没有 用户名也是可以登录的,只是没有权限,如查看所有db权限、创建db权限等等。
默认有一个root帐户,密码为空。

如果用一个没有帐户的名字登录mysql,相当于没有输入用户名
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

2、删除创建数据库
  • CREATE DATABASE 语句
    创建一个数据库很容易;只要在CREATE DATABASE 语句中给出其名称即可:
create database db_name
    其中限制条件是该数据库的名称必须是合法的,该数据库必须不存在,并且您必须有足够的权限来创建它。
  • DROP DATABASE 语句
    删除数据库就像创建它一样容易,假如有权限,执行下列语句即可:
drop database db_name
    请注意,不要乱用DROP DATABASE 语句,它将会删除数据库及其所有的表。在删除了一个数据库后,该数据库就永远没有了。换句话说,不要仅为了看看这条语句如何工作就试着执行该语句。如果管 理员已经正常完成了数据库备份,那么删除的数据库可能还可以恢复。
请注意,数据库是由数据目录中的一个目录表示的。如果在该目录中放置了一些非表的数据文件,它们是不会被DROP DATABASE 语句删除的。此时,该数据库目录自身也不被删除。
  • USE 语句
    USE 语句选择一个数据库,使其成为服务器的给定连接的缺省(当前)数据库:
use db_name

    必须对数据库具有某种访问权限,否则不能使用它。为了使用数据库中的表而选择该数据库实际上不是必须的,因为可以利用db_name.tbl_name 形式来引用它的表。但是,不必指定数据库限定词引用表要方便得多。选择一个缺省数据库并不代表在连接的持续时间内它都必须是缺省的。可发布任意数目的 USE 语句在数据库之间进行任意地切换,只要具有使用它们的权限即可。选择一个数据库也不限制您只使用该数据库中的表。您仍然可以通过用数据库名限定表名的方 法,引用其他数据库中的表。

MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):
1.新建用户
  • 登录MYSQL:
  @>mysql -u root -p
  @>密码
  • 创建用户:
  mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
  这样就创建了一个名为:test 密码为:1234 的用户。
  注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
  • 然后登录一下:
  mysql>exit;
  @>mysql -u test -p
  @>输入密码
  mysql>登录成功
2.为用户授权
  授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
  • 登录MYSQL(有ROOT权限),这里以ROOT身份登录:
  @>mysql -u root -p
  @>密码
  • 首先为用户创建一个数据库(testDB):
  mysql>create database testDB;
  • 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
   mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
   mysql>flush privileges;//刷新系统权限表
  格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
  • 如果想指定部分权限给一用户,可以这样来写:
  mysql>grant select,update on testDB.* to test@localhost identified by '1234';
  mysql>flush privileges; //刷新系统权限表
  • 授权test用户拥有所有数据库的某些权限   
  mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
     //test用户对所有数据库都有select,delete,update,create,drop 权限。
  //@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)
//对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。
3.删除用户
 @>mysql -u root -p
 @>密码
 mysql>Delete FROM user Where User='test' and Host='localhost';
 mysql>flush privileges;
 mysql>drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@'%';
        >drop user 用户名@ localhost; 
4.修改指定用户密码
  @>mysql -u root -p
  @>密码
  mysql>update mysql.user set password=password('新密码') where User="test" and Host="localhost";
  mysql>flush privileges;
5.列出所有数据库
mysql>show database;
6.切换数据库
mysql>use '数据库名';
7.列出所有表
mysql>show tables;
8.显示数据表结构
mysql>describe 表名;
9.删除数据库和数据表
mysql>drop database 数据库名;
mysql>drop table 数据表名;



一, 创建用户:

       命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

       说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

      例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
               CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
               CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
               CREATE USER 'pig'@'%' IDENTIFIED BY '';
               CREATE USER 'pig'@'%';

二,授权:

      命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

     说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

      例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
               GRANT ALL ON *.* TO 'pig'@'%';

      注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
           GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三.设置与更改用户密码

     命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

      例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四.撤销用户权限

      命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

     说明: privilege, databasename, tablename - 同授权部分.

      例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

      注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

      具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

五.删除用户

      命令: DROP USER 'username'@'host';

1 条评论: