zoukankan      html  css  js  c++  java
  • linux Grant 添加 MySql 用户

    Grant 添加 MySql 用户
    2009-04-03 14:40

    我安装的版本:

    mysql> select version();
    +------------+
    | version()   |
    +------------+
    | 5.0.22-log |
    +------------+
    1 row in set (0.05 sec)

    添加用户:

    mysql> grant select,update,insert,delete on *.* to jimmy@AS3 identified by "jimmy";
    Query OK, 0 rows affected (0.00 sec)

    mysql> select host,user,password from user;
    +-----------+--------+-------------------------------------------+
    | host       | user    | password                                   |
    +-----------+--------+-------------------------------------------+
    | localhost | root    |                                            |
    | AS3        | root    |                                            |
    | AS3        |         |                                            |
    | localhost |         |                                            |
    | AS3        | yuanjl | 550185cd02026208                           |
    | localhost | yuanjl | 550185cd02026208                           |
    | AS3        | jimmy   | *1E7F320B8F580AADC02E8A70285E46A8CFDA3359 |
    +-----------+--------+-------------------------------------------+
    7 rows in set (0.00 sec)

    mysql> quit
    Bye
    [root@AS3 mysql-5.0.22]# mysql -pjimmy -u jimmy -h AS3 mysql
    ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    [root@AS3 mysql-5.0.22]# mysql -u root -h AS3 mysql
    Welcome to the MySQL monitor.   Commands end with ; or /g.
    Your MySQL connection id is 36 to server version: 5.0.22-log

    Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

    mysql> update user set password=old_password('jimmy') where user='jimmy' and host='AS3';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1   Changed: 1   Warnings: 0

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> quit
    Bye
    [root@AS3 mysql-5.0.22]# mysql -pjimmy -u jimmy -h AS3 mysql
    Welcome to the MySQL monitor.   Commands end with ; or /g.
    Your MySQL connection id is 37 to server version: 5.0.22-log

    Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

    mysql>


    2、Mysql添加用户



    个人教训,在添加Mysql帐号的时候,一定要主义用户名和主机(local和%)均要被引号引起,否则命令即错



    命令方式的.注意每行后边都跟个 ; 表示一个命令语句结束.

    格式:grant select on 数据库.* to “用户名”@“登录主机” identified by "密码";



    例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

    grant select,insert,update,delete on *.* to “test1”@"%" Identified by "abc"; 



    补充所有权限语句:

    由例1得: 将执行权限(select,insert,....)改为all privileges,即表示拥有所有权限,包括创建数据库权限,删除数据库,已经不局限于在一个数据库内操作

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; 



    例1(非补充)中增加的用户是十分危险的,因为你的主机是%,%即代表任意位置的主机,而local即词义"本地",假如,某个人想知道test1的密 码,那么他就可以在internet上的任何一台电脑上连接到你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。



    根据例1补充语句,此语句尽量不要在Mysql服务器上使用,如果你的服务器处于托管或远端地带,如果你需要远程管理Mysql服务器,而由不想通过超级 终端登录到服务器上,那么你只好用此语句,但要清楚一件事,即你能使用此方法连接服务器,其他人也可以,所以要保管好你的mysql密码



    例2、 增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据 库,只能通过MYSQL主机上的web页来访问了。 



    grant select,insert,update,delete on mydb.* to “test2”@localhost identified by "abc";

    如果你不想test2有密码,可以再打一个命令将密码消掉。

    grant select,insert,update,delete on mydb.* to “test2”@localhost identified by "";



    grant select,insert,update,delete on dez.* to “test2”@"%" identified by "123456";
     
     
     
    ---------------------------
     
    数据库版本类型: MYSQL 5.0.x 社区版本
    数据库重要命令:mysqldump ;mysql
    系统环境: Windows Xp Sp2
    示例数据库: Demo (内部表可自己任意建立)
    数据库用户名: root (也可以是具有管理操作权限的用户名)
    数据库登录密码: dbuserkey
    测试环境中mysql已在环境变量中设置成功即 可在命令行中输入mysql启动mysql数据库引擎
    A,完全导出Demo所有数据和结构 (完全备份)
    在任目录中(比如 D:/mydb )建立批处理文件backup.bat,内容如下:
    mysqldump -uroot -pdbuserkey --add-locks --opt Demo>D:/mydb/Demo.sql;
    @pause
    B,完全导入Demo所有数据和结构 (完全恢复)
    在与backup.bat同目录中建立批处理文件restore.bat 内容如下:
    mysql -uroot -pdbuserkey demo<D:/mydb/Demo.sql;
    @pause
    C,测试
    开启mysql数据库引擎 net start mysql
    运行 A中批处理 会看到D:/mydb下生成Demo.sql 
    然后执行 Drop Database Demo命令删除Demo数据库
    建立Demo数据库 Create Database Demo;
    运行 B 中比处理 即可恢复所有数据和结构
    D,常用命令
    登录或连接mysql数据库服务
    mysql -h主机地址 -u用户名 -p用户密码;
    推出mysql 数据库连接
    Exit
    停止本地mysql数据库服务
    Net stop mysql
    修改密码
    mysqladmin -u用户名 -p旧密码 password 新密码;
    显示数据库列表
    Show Database;
    使用数据库
    Use DatabaseName;
    显示当前选择数据库
    Select Database();
    打开表
    Show TableName;
    显示数据表的结构
    Describe TableName; 
    当前数据库包含的表信息: 
    Show Tables; (注意:最后有个s) 
    建立数据库
    Create DataBase databaseName;
    建立表
    Use databaseName;
    Create Table tableName (字段设定列表);
    删库和删表
    Drop Database databaseName;
    Drop Table tableName;
    将表中记录清空
    Delete From tableName;
    表名字更改
    Rename Table tableA to tableB; 
    SQL结构化查询语句命令见mysql doc 文档
    Mysql创建删除用户
    Grant select,insert,update,delete on *[(数据库)].* to 用户名@登录主机 identified by "密码" 
    命令方式的.注意每行后边都跟个 ; 表示一个命令语句结束. 
    格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 
    ==以下来自网络==
    例1,增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询,插入,修改,删除的权限.首先用以root用户连入MYSQL,然后键入以下命令: 
    grant select,insert,update,delete on *.* to test1@"%" Identified by "abc"; 
    例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2. 
    例 2,增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询,插入,修改,删除的操作 (localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据 库,只能通过MYSQL主机上的web页来访问了. 
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"; 
    如果你不想test2有密码,可以再打一个命令将密码消掉. 
    grant select,insert,update,delete on mydb.* to test2@localhost identified by ""; 
    这样就创建了一个名为:phplamp 密码为:1234 的用户. 
    然后登录一下. 
    mysql>exit; 
    mysql -u phplamp -p 
    输入密码 
    mysql>登录成功 
    2.为用户授权. 
    //登录MYSQL(有ROOT权限).我里我以ROOT身份登录. 
    mysql -u root -p 
    密码 
    //首先为用户创建一个数据库(phplampDB) 
    mysql>create database phplampDB; 
    //授权phplamp用户拥有phplamp数据库的所有权限. 
    >grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; 
    //刷新系统权限表 
    mysql>flush privileges; 
    mysql>其它操作 
    /* 
    如果想指定部分权限给一用户,可以这样来写: 
    mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234'; 
    //刷新系统权限表. 
    mysql>flush privileges; 
    */ 
    3.删除用户. 
    mysql -u root -p 
    密码 
    mysql>Delete FROM user Where User="phplamp" and Host="localhost"; 
    mysql>flush privileges; 
    //删除用户的数据库 
    mysql>drop database phplampDB; 
    4.修改指定用户密码. 
    mysql -u root -p 
    密码 
    mysql>update mysql.user set password=password('新密码') where User="phplamp" 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 数据表名; 
    10. 显示表的结构 
    describe "tabaleName"; 
    cmd下连接mysql: 
    mysql -uroot -p 回车 注意密码不要打在-p后面
  • 相关阅读:
    P1642 规划 [01分数规划]
    01分数规划学习笔记
    P1527 [国家集训队]矩阵乘法 [整体二分]
    P3292 [SCOI2016]幸运数字 [线性基+倍增]
    java中遍历集合的三种方式
    20190706中兴提前批专业面面经
    《java入门如此简单》——语句,函数和数组
    java中数组常见的操作
    2019 波克城市ava面试笔试题 (含面试题解析)
    2019 华云数据java面试笔试题 (含面试题解析)
  • 原文地址:https://www.cnblogs.com/hssbsw/p/4342900.html
Copyright © 2011-2022 走看看