mysql史上最全最简单命令行添加用户、修改权限,修改登录权限IP等基本操作

1、添加用户

1.1 登录MYSQL:

  @>mysql -u root -p

  @>密码

创建用户:

  	格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  	username – 你将创建的用户名说明:

	host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,  如果想让该用户可以从任意远程主机登陆,可以使用通配符%
	例子:
	CREATE USER 'javacui'@'localhost' IDENTIFIED BY '123456'; 
 
	CREATE USER 'javacui'@'172.20.0.0/255.255.0.0' IDENDIFIED BY '123456'; 
	 
	CREATE USER 'javacui'@'%' IDENTIFIED BY '123456'; 
	 
	CREATE USER 'javacui'@'%' IDENTIFIED BY ''; 
	 
	CREATE USER 'javacui'@'%';
	
	password –  该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登 陆服务器

授权(必须先创建用户才能再授权,直接授权会报错)

    格式:GRANT privileges ON databasename.tablename TO 'username'@'host';

privileges – 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所 的权限则使用ALL说明:

databasename – 数据库名

tablename - 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用* 表示, 如*.*

举例:

	授权SELECT,INSERT
   GRANT SELECT, INSERT ON test.user TO 'javacui'@'%'; 
   
   授权查询、插入、修改、删除的权限
   GRANT SELECT, INSERT, UPDATE, DELETE ON test.user TO 'javacui'@'%'; 
   
 	授权全部权限ALL
	GRANT ALL ON *.* TO 'javacui'@'%';
	
    FLUSH PRIVILEGES;
    
  #注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。  
  #如果想远程登录的话,将"localhost"改为"%",  
  #表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

撤销用户权限

REVOKE privileges ON databasename.tablename FROM 'username'@'host';

例子说明: privilege, databasename, tablename – 同授权部分

REVOKE SELECT ON *.* FROM 'javacui'@'%';

2、修改密码

方法一:
设置与更改用户密码

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是当前登陆用户用

SET PASSWORD = PASSWORD("newpassword");

方法二:

UPDATE直接编辑user表

  mysql -u root -p 密码

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;


在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root -p 
  
  mysql> use mysql;

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

3、修改登录的ip,让那个ip可以登录

方法一:

改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -p

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

方法二:

授权法。

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

修改登录的ip更多请参考数据库可以远程连接或者说用IP地址可以访问

4. 删除用户

  @>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; 

5. 列出所有数据库

  mysql>show database;

6. 切换数据库

	mysql>use '数据库名';

7. 列出所有表

  mysql>show tables;

8. 显示数据表结构

  mysql>describe 表名;

9. 删除数据库和数据表

  mysql>drop database 数据库名;

  mysql>drop table 数据表名;

10.表操作

建表

   备注:操作之前使用“use <数据库名>”应连接某个数据库。
  命令:create table <表名> (<字段名 1> <类型 1> [,..<字段名 n> <类型 n>]);
  例子:
  mysql> create table MyClass(                 
  > id int(4) not null primary key auto_increment,      
  > name char(20) not null,               
  > sex int(4) not null default '0',            
  > degree double(16,2));               

获取表结构

  命令: desc 表名,或者show columns from 表名
  例子:
  mysql> describe MyClass        
  mysql> desc MyClass;             
  mysql> show columns from MyClass;     

删除表

  命令:drop table <表名>
  例如:删除表名为 MyClass 的表
  mysql> drop table MyClass;

插入数据

  命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values (1 )[, ( 值 n )]
  例子:
  mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

查询表中的数据

 查询所有行
  mysql> select * from MyClass;

查询前几行数据

  例如:查看表 MyClass 中前 2 行数据
  mysql> select * from MyClass order by id limit 0,2;
  或者
  mysql> select * from MyClass limit 0,2;

删除表中数据

  命令:delete from 表名 where 表达式
  例如:删除表 MyClass 中编号为 1 的记录
  mysql> delete from MyClass where id=1;

修改表中数据

  命令:update 表名 set 字段=新值,... where 条件
  mysql> update MyClass set name='Mary' where id=1;

在表中增加字段

  命令:alter table 表名 add 字段 类型 其他;
  例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
  mysql> alter table MyClass add passtest int(4) default '0'

更改表名

  命令:rename table 原表名 to 新表名;
  例如:在表 MyClass 名字更改为 YouClass
  mysql> rename table MyClass to YouClass;

更新字段内容

  命令:update 表名 set 字段名 = 新内容
  update 表名 set 字段名 = replace(字段名, '旧内容', '新内容');
  例如:文章前面加入 4 个空格
  update article set content=concat('    ', content);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章