MySQL必知必会—安装应用篇

MySQL必知必会—概念篇mysql


MySQL 安装

推荐几个 MySQL 安装和链接的经验文章git

MySQL 应用

mysql 命令行

  • 命令输入在 mysql> 以后;
  • 命令用 ; 或 \g 结束,换句话说,仅按 Enter 不执行命令;
  • 输入 help 或 \h 得到帮助,也能够输入更多的文本得到特定命令的帮助(如,输入 help select 得到试用 SELECT 语句的帮助);
  • 输入 quit 或 exit 退出命令行。

链接数据库

链接数据库须要如下信息:github

  • 主机名(计算机名)——若是链接到本地 MySQL 服务器,为 localhost ;
  • 端口(若是使用默认端口 3306 以外的端口);
  • 一个合法的用户名;
  • 用户口令(若是须要)

例以下面的指令:sql

mysql -u root -h localhost -P 3306 -p
复制代码

数据库的登陆和成员管理

访问控制

MySQL 服务器的安全基础是:用户应该对他们须要的数据具备适当的访问权,既不能多也不能少。数据库

须要给用户提供他们所需的访问权,且仅提供他们所需的访问权。这就是所谓的访问控制。访问控制的目的不单单是防止用户的恶意企图,访问控制也有助于避免很常见的无心识错误的结果,如错打 MySQL 语句,在不合适的数据库中操做或其余一些用户错误。安全

管理用户

查询已有用户

MySQL 用户帐号和信息存储在名为 mysql 的 MySQL数据库中。通常只有在须要得到全部用户帐号列表时才会直接访问。bash

# 输入
USE mysql;
SELECT user FROM user;

# 输出
+------------------+
| user             |
+------------------+
| test             |
| root             |
+------------------+
复制代码
建立用户帐号

一、使用 CREATE USER 语句(推荐)服务器

# 输入
CREATE USER chenfangxu IDENTIFIED BY '123456';
SELECT user FROM user;

#输出
+------------------+
| user             |
+------------------+
| chenfangxu       |
| test             |
| root             |
+------------------+
复制代码

二、GRANT 语句也能够建立用户帐号。(MySQL 8.0以上的新版本已经将建立帐户和赋予权限分开了,因此不能再用这种方法建立用户了)post

# mysql8.0如下
GRANT SELECT ON *.* TO chenfangxu@'%' IDENTIFIED BY '123456';
复制代码

三、使用 INSERT 直接插入行到 user 表来增长用户(不建议)ui

设置访问权限

在建立用户帐号后,必须接着分配访问权限。新建立的用户帐号没有访问权限。他们能登陆 MySQL ,但不能看到数据,不能执行任何数据库操做。


查看赋予用户帐号的权限 SHOW GRANTS FOR

# 输入
SHOW GRANTS FOR chenfangxu;

# 输出
+----------------------------------------+
| Grants for chenfangxu@%                |
+----------------------------------------+
| GRANT USAGE ON *.* TO `chenfangxu`@`%` |
+----------------------------------------+
复制代码

权限 USAGE ON *.* ,USAGE表示根本没有权限,这句话就是说在任意数据库和任意表上对任何东西没有权限。

chenfangxu@% 由于用户定义为 user@host, MySQL的权限用用户名和主机名结合定义,若是不指定主机名,则使用默认的主机名%(即授予用户访问权限而无论主机名)。


添加(更新)用户权限 GRANT privileges ON databasename.tablename TO 'username'@'host';

# 输入
GRANT SELECT ON performance_schema.* TO chenfangxu@'%';
SHOW GRANTS FOR chenfangxu;

# 输出
+------------------------------------------------------------+
| Grants for chenfangxu@%                                    |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO `chenfangxu`@`%`                     |
| GRANT SELECT ON `performance_schema`.* TO `chenfangxu`@`%` |
+------------------------------------------------------------+
复制代码

撤销用户的权限 REVOKE privileges ON databasename.tablename FROM 'username'@'host';

# 输入
REVOKE SELECT ON performance_schema.* FROM chenfangxu@'%';
SHOW GRANTS FOR chenfangxu;

#输出
+----------------------------------------+
| Grants for chenfangxu@%                |
+----------------------------------------+
| GRANT USAGE ON *.* TO `chenfangxu`@`%` |
+----------------------------------------+
复制代码

重命名

重命名:RENAME USER 'username' TO 'newusername';

# 输入
RENAME USER test TO test1;
SELECT user FROM user;

# 输出
+------------------+
| user             |
+------------------+
| test1            |
| root             |
+------------------+
复制代码

更改用户密码(mysql 8.0.11后)

更改用户密码:SET PASSWORD FOR 'username'@'host' = 'newpassword';

SET PASSWORD FOR chenfangxu@'%' = '654321';

# 更改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
复制代码

删除用户

删除用户:DROP USER 'username'@'host';

# 输入
DROP USER chenfangxu@'%';
SELECT user FROM user;

#输出
+------------------+
| user             |
+------------------+
| test             |
| root             |
+------------------+
复制代码

MySQL 5 之前, DROP USER 只能用来删除用户帐号,不能删除相关的权限。所以,若是使用旧版的 MySQL 须要先用 REVOKE 删除与帐号相关的权限,而后再用 DROP USER 删除帐号。

操做数据库

# 建立数据库,如建立 learnsql 数据库
CREATE DATABASE learnsql;

# 选择数据库,如选择 learnsql 数据库
USE learnsql;

# 显示数据库列表
SHOW DATABASES;

# 显示数据库内的表的列表
SHOW TABLES;

# 显示表中每一列的详细信息
SHOW COLUMNS FROM customers;
复制代码

DESCRIBE 语句

MySQL 中 DESCRIBE 能够做为 SHOW COLUMNS FROM 的快捷方式。

# 如下两种命令结果相同
SHOW COLUMNS FROM customers;
DESCRIBE customers;
复制代码

一个持续更新的github笔记,连接地址:Front-End-Basics,能够watch,也能够star。

此篇文章的地址:MySql必知必会

相关文章
相关标签/搜索