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后面
  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/hssbsw/p/4342900.html
Copyright © 2011-2022 走看看