MySQL

MySQL 是一个关系型数据库管理系统,MySQL 是一种 DBMS,即它是一种数据库软件。由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

客户机——服务器软件

  • 客户机(用来与 MySQL 打交道,给 MySQL 提供要执行的命令)的一个应用。
    • mysql 命令行实用程序

安装

下载安装包

所有平台的 MySQL 下载地址为: MySQL 下载 。 挑选你需要的 MySQL Community Server 版本及对应的平台

注意:安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

基于 docker 安装

首先安装 docker 服务

yum -y install docker 

docker 中搜索可用镜像

docker search mysql

拉取 mysql 镜像

docker pull mysql:5.6

查看 mysql 镜像

docker image ls 

运行 mysql

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 --restart=always  mysql:5.6

以上参数的含义:

  • --name mysql 将容器命名为mysql,后面可以用这个 name 进行容器的启动暂停等操作
  • -e MYSQL_ROOT_PASSWORD=123456 设置 MySQL 密码为 123456
  • -d 此容器在后台运行,并且返回容器 ID
  • -i 以交互模式运行容器
  • -p 进行端口映射,格式为 主机(宿主)端口:容器端口
  • --restart=always 当 docker 重启时,该容器自动重启

进入 MySQL 容器

docker exec -it mysql bash

登录

mysql -h 主机名 -u 用户名 -p
  • h:指定客户端所要登录的 MySQL 主机名,登录本机(localhost 或 127.0.0.1)该参数可以省略;
  • -u:登录的用户名;
  • -p:告诉服务器将会使用一个密码来登录,如果所要登录的用户民密码为空,可以忽略此选项。

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可(docker 容器中登录)

mysql -u root -p

按回车确认,如果安装正确且 MySQL 正在运行,会得到以下响应:

Enter password: 

登录成功后

mysql> 

退出

mysql> exit
Bye

管理

用户设置

如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。

以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。

注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

  • Select_priv
  • Insert_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • References_priv
  • Index_priv
  • Alter_priv

常用命令

创建数据库

CREATE DATABASE 数据库名;

使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限。

mysql -u root -p
Enter password: ****** # 登录后进入终端
mysql> create DATABASE jecyuBlog;

使用xxx 语言脚本创建数据库

删除数据库

drop 命令删除数据库

mysql>drop database jecyuBlog;

选择数据库

选择要操作的 Mysql 数据库,使用该命令后所有 Mysql 命令都只针对该数据库: USE 数据库名:

mysql> use jecyuBlog;
Databse changed

列出所有数据库

列出 MySQL 数据库管理系统的数据库列表。 SHOW DATABASES

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

显示指定数据库的所有表

显示指定数据库的所有表,使用改命令前需要使用 use 命令来选择要操作的数据库。

SHOW TABLES;
mysql> use jecyuBlog;
Database changed
mysql> SHOW TABLES;

GUI 工具操作 MySQL

  • 最棒的10款MySQL GUI工具 —— 这里我使用了 Sequel Pro 开源,mac 版本,Sequel Pro用于管理MySQL数据库(本地或在Internet上)。您可以使用它来添加删除数据库和表,修改字段和索引,预览和过滤表的内容,添加编辑删除行,执行自定义查询,转储表或整个数据库。它兼容MySQL 3.x,4,5。

Node.js 连接

参考资料

Last Updated: 10/18/2019, 8:42:15 AM