zoukankan      html  css  js  c++  java
  • 从 0 到 1 MySQL 系列(一):MySQL 的安装与使用

    (一)安装 MySQL

    MySQL 是一个 C/S 架构的关系型数据库软件,最通用的安装方式为 Docker 安装:

    1. 安装 Docker 镜像:docker pull mysql
    2. 启动 MySQL 服务器:docker run --name <container name> -v <data directory name>:/var/lib/mysql -p <port>:3306 -e MYSQL_ROOT_PASSWORD=<root password> -d mysql:latest

    简单介绍下上面一条命令:

    1. -v <data directory name>:/var/lib/mysql 指定了容器内部数据与宿主机本地磁盘目录的映射关系;
    2. -p <port>:3306:指定了宿主机端口与容器内部端口(默认为 3306)映射关系;

    注意:生产环境中,不要直接将密码输入至命令行中,容易被攻击者通过 history 知晓 root 密码,而应该先把密码存储在文件中,在 shell 命令中读取文件内容的方式输入 root 密码。

    在 shell 中运行 docker ps 命令查看启动的 MySQL 数据库是否正常运转,出现下述画面则表示一切顺利:

    Docker mysql 镜像官方文档

    (二)连接 MySQL 数据库

    仅仅是安装成功了 MySQL 数据库是没有意义的,要能够真正使用 MySQL 数据库,我们还需要 MySQL 客户端,并成功连接 MySQL 数据库。
    我们可以通过三种方式连接 MySQL 数据库:

    1. 在容器内部连接;
    2. 在宿主机中通过 shell 连接;
    3. 服务端程序连接;
    4. GUI 工具连接;

    我们分别看下如何连接:

    1. 在容器内部连接

    1. 运行命令 docker exec -it <container name> /bin/bash 进入 mysql 容器;
    2. 运行命令 mysql -u root -p 后,输入开始设置的 root 密码,即可进入 mysql 命令行模式;

    2. 在宿主机中通过 shell 连接

    1. 在宿主机中执行 shell 命令: mysql -h 127.0.0.1 -P <your port> -u root -p
    2. 输入开始设置的 root 密码,即可成功连接 mysql 服务器;

    注意:

    1. 宿主机必须先安装 mysql 客户端才可通过 shell 命令连接 mysql 数据库,在 Mac 上推荐的安装方式是:brew install mysql
    2. your port 为 mysql 容器创建时指定的关联端口,务必在启动容器时指定关联端口;

    3. 在服务端程序中连接

    我们以 node.js 语言为例,需要引入 mysql npm 包,为了方便演示,使用 koa 框架:

    const Koa = require('koa')
    const mysql = require('mysql')
     
    const app = new Koa()
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: <root password>,
        port: <the port you set, default is 3306>,
        database: <database name>
    })
    
    connection.connect()
    
    app.use(async (ctx) => {
        ctx.body = 'hello world'
        connection.query(`
            <your SQL language>
        `)
    })
    
    app.listen(3000)
    

    注意:若安装的 mysql 版本 >= 8,则此时运行 node index.js 时程序会报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client

    这是由于 mysql 服务器版本采用了当下 mysql npm 包不兼容的加密方式导致的,解决方法如下:

    在 mysql 命令行依次输入以下命令:

    1. USE mysql;:切换为 mysql 数据库;
    2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY <password>;:更改加密方式为 mysql_native_password
    3. FLUSH PRIVILEGES;:更新配置;

    4. GUI 工具连接

    我在 Mac 上使用的 MySQL 客户端工具为 Sequel Ace(Sequel Pro 2016 年后就不再维护了,该软件为社区志愿者维护的版本)。连接方式如下:

    (三)小结

    至此我们记录了如果安装 MySQL 数据库以及各种数据库连接方式。一定要注意在连接数据库的时候保证 IP,端口号,用户名和密码正确。

  • 相关阅读:
    php基本文件操作````
    PHP+JS无限级可伸缩菜单详解(递归方法)
    php 服务器快速搭建
    PHP编码转换函数
    php生成html分页方法-----ob篇
    gcc
    虚拟地址_物理地址_逻辑地址_页表_内存映射
    GCC动态库和静态库混合使用
    Linux下GCC生成和使用静态库和动态库详解(二)
    Linux下GCC生成和使用静态库和动态库详解(一)
  • 原文地址:https://www.cnblogs.com/libinfs/p/13967133.html
Copyright © 2011-2022 走看看