mysql 用户与数据_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:\ProgramData\MySQL\MySQL Server 5.7\Data\study"

D:\mysqldata\study

d).启动服务

0df52478ecedf18e7f7c529d82a26bad.png

findstr "^[^#]""C:\ProgramData\MySQL\MySQL

Server 5.7\my.ini"

0229ff73ed8e8e72c88911cac9ab0843.png

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:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用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分配可对数据库test的hr表进行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");

撤销用户权限:由grant变REVOKE

REVOKE privilege ON

databasename.tablename FROM 'username'@'host';

删除用户

DROP USER

'username'@'host';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值