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,端口号,用户名和密码正确。

  • 相关阅读:
    Advanced Configuration Tricks
    Reviewing the Blog Module
    Editing and Deleting Data
    Making Use of Forms and Fieldsets
    Understanding the Router
    SQL Abstraction and Object Hydration
    Preparing for Different Databases
    Java学习理解路线图
    Openstack学习历程_1_视频
    CentOS安装Nginx负载
  • 原文地址:https://www.cnblogs.com/libinfs/p/13967133.html
Copyright © 2011-2022 走看看