• MySQL创建数据库与用户


     

    root远程访问授权

    mysql> SHOW DATABASES;

    +--------------------+

    | Database           |

    +--------------------+

    | information_schema |

    | mysql              |

    | performance_schema |

    | sys                |

    +--------------------+

    4 rows in set (0.00 sec)

     

    mysql> use mysql;

    Database changed

     

    --允许在Liang-PC上以root/123456登录

    mysql> grant all privileges on *.* to 'root'@'Liang-PC' identified by '123456' with grant option;

    Query OK, 0 rows affected, 1 warning (0.02 sec)

     

    mysql> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

     

    mysql> select host,user from user;

    +-----------+---------------+

    | host      | user          |

    +-----------+---------------+

    | liang-pc  | root          |

    | localhost | mysql.session |

    | localhost | mysql.sys     |

    | localhost | root          |

    +-----------+---------------+

    4 rows in set (0.00 sec)

    MySQL Workbench 8.0 CE

    Ctrl+Enter  运行当前语句

     

     

    #查询数据库连接

    show full processlist;

    show status like '%Max_used_connections%';

    show status like '%Threads_connected%'; #当前连接数

    show status like '%table_lock%'; #表锁定

    show status like 'innodb_row_lock%'; #行锁定

    show status like '%qcache%';  #查询缓存情况

    show variables like "%query_cache%";

    SHOW STATUS LIKE 'Qcache%';

    show variables like "%binlog%";

    show status like 'Aborted_clients'; #由于客户没有正确关闭连接已经死掉,已经放弃的连接数量

    show variables like '%max_connections%'; #查看最大连接数量

    show variables like '%timeout%'; #查看超时时间

    show variables like 'log_%';  #查看日志是否启动

    mysql注释符

    单行注释:#abc  -- abc

    这里注意oracle/mssql--注释不需要空格,但mysql的一定要有空格。

     

     多注释:

    /*

    Abc

    */

    创建数据库/Schemas

    -- 查看 datadir 位置

    show variables like '%dir%';

    show variables like 'datadir';

     

    Show databases;

    等价

    select schema_name from information_schema.schemata

     

    use mysql;

    show tables;

     

    SHOW COLUMNS FROM user;

    等价

    describe user;

    1、使用create database语句创建数据库

    CREATE DATABASE IF NOT EXISTS study DEFAULT CHARSET utf8;

    create database if not exists study default character set = 'utf8';

    2、查看创建的DB的字符集

    select schema_name,default_character_set_name

     from information_schema.schemata where schema_name = 'study';

    3、通过链接符,改变数据库物理位置

    a).关闭服务

    b).移动目录

    c).mklink /j "C:ProgramDataMySQLMySQL Server 5.7Datastudy" D:mysqldatastudy

    d).启动服务

    clip_image002

    findstr "^[^#]" "C:ProgramDataMySQLMySQL Server 5.7my.ini"

    clip_image004

    4、创建表

    CREATE TABLE `study`.`a_temp01` (

      `id` INT NULL,

      `text` VARCHAR(45) NULL);

    创建用户并授权

    CREATE USER 'ustudy'@'%' IDENTIFIED BY 'ustudy';

    flush privileges;

    select host,user from mysql.user;

    GRANT all privileges ON study.* TO 'ustudy'@'%';

     

    方法分成三种:INSERT USER表的方法、CREATE USER的方法、GRANT的方法,最终在mysql.user中形成记录。

     

    账号的组成方式:用户名+主机(所以可以出现重复的用户名,跟其他的数据库不一样)

    用户名:16字符以内.

    主机名:可以用主机名和IP地址,也可以用通配符

    通配符说明:172.18.10.%IP地址为172.18.10段的所有IP地址都可以访问)

    CREATE USER的方法

    CREATE USER 'username'@'host' [IDENTIFIED BY 'PASSWORD']

    说明:该方法创建出来的用户只有连接数据库的权限,需要后续继续授权;

    GRANT的方法

    GRANT privileges ON databasename.tablename TO 'username'@'host' [identified by ‘password’ WITH GRANT OPTION];

    privileges:用户的操作权限,如SELECTINSERTUPDATE等,如果要授予所的权限则使用ALL

    databasename:数据库名

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

    当数据库存在用户的时候GRANT会对用户进行授权,但当数据库不存在该用户的时候,就会创建相应的用户并进行授权。

     

    例子:

    mysql>grant select,insert,update,delete on test.hr to john@192.168.10.1 INSERT USER表的方法123';

    说明:给主机为192.168.10.1的用户john分配可对数据库testhr表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123

     

    mysql>grant all privileges on test.* to joe@192.168.10.1 identified by '123';

    说明:给主机为192.168.10.1的用户john分配可对数据库test所有表进行所有操作的权限,并设定口令为123

     

    mysql>grant all privileges on *.* to john@192.168.10.1 identified by '123';

    说明:给主机为192.168.10.1的用户john分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123

     

    mysql>grant all privileges on *.* to john@localhost identified by '123';

    说明:用户john分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123

     

    查看用户权限:等价

    SHOW grants FOR ustudy;

    SHOW GRANTs FOR 'ustudy'@'%';

     

    show CREATE database study; 这个可以看到创建study数据库时用到的一些参数。

    show create table study.a_temp01;    可以看到创建study.a_temp01表时用到的一些参数

    INSERT USER表的方法

    插入方法:创建用户

    mysql> insert into user (host,user,password) values ('%','john',password('123'));

    mysql>flush privileges;

     

     

     

    SET PASSWORD

    设置与更改用户密码

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

    如果是当前登陆用户用:

    SET PASSWORD = PASSWORD("newpassword");

     

    撤销用户权限:由grantREVOKE

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

     

    删除用户

    DROP USER 'username'@'host';

     

    Tty725 说:
    欢迎转载,但请注明内容的来源或URL;
    [转]”篇章,必须保留原始来源且勿添加本blog指向。
  • 相关阅读:
    O(big oh) (big omega) (big theta)
    Ex 7_21 在一个流网络中,一条边被称为是临界的...第十三次作业
    Ex 7_17 考虑如下的网络(其中数字为对应边的容量)...第十三次作业
    Expm 10_2 实现Ford-Fulkerson算法,求出给定图中从源点s到汇点t的最大流,并输出最小割。
    pat1009
    pat1008
    pat1007
    pat1006
    pat1005
    pat1004
  • 原文地址:https://www.cnblogs.com/Tty725/p/9540630.html
Copyright © 2020-2023  润新知