• 华为云HECS云服务器docker环境下安装mysql


            华为云HECS云服务器,已经安装了docker环境,准备下docker环境下安装mysql

    一、HECS云服务器安装docker

    登录华为HECS云服务器,安装docker环境。

    安装docker参考如下文章:

    华为云HECS安装docker并安装mysql-CSDN博客

    二、拉取mysql镜像

     1、拉取mysql5.7的镜像

    docker pull mysql:5.7

     2、查看镜像

    docker images

     或(带mysql关键字过滤)

    docker images | grep mysql

    三、运行镜像,创建mysql容器

    1运行docker run指令,安装

    1. docker run -p 3306:3306 \
    2. --name=mysql \
    3. --restart=always \
    4. --privileged=true \
    5. -v /var/log/mysql/log:/var/log/mysql \
    6. -v /usr/local/mysql/data:/var/lib/mysql \
    7. -v /usr/local/mysql/conf:/etc/mysql/conf.d \
    8. -e MYSQL_ROOT_PASSWORD=123456 \
    9. -d mysql:5.7 \
    10. mysqld --lower_case_table_names=1

     -p 3306:3306:指定宿主机端口与容器端口映射关系

    --name mysql:创建的容器名称

    --restart=always:总是跟随docker启动

    -e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456

    --privileged=true:获取宿主机root权限。使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker容器中启动docker容器。

    --lower_case_table_names=1:mysql表名称大小写敏感设置。【0 :表示区分大小写;1 :表示不区分大小写】

    -v:分别挂载出来日志、mysql数据和my.cnf,-v 宿主机文件:容器中文件

    -d mysql:5.7:表示后台运行mysql容器,mysql:5.7:镜像名和版本,如果这个镜像不存在会自动下载镜像。

    2运行docker ps指令,查看是否安装成功

    docker ps | grep mysql

    如上,能查询出结果证明安装成功。8cbca6e62b09 为容器id。

    3、配置mysql(创建my.cnf文件)

    宿主机的/usr/local/mysql/conf目录下创建文件my.cnf

    文件内容

    1. [client]
    2. default-character-set=utf8
    3. [mysql]
    4. default-character-set=utf8
    5. [mysqld]
    6. init_connect='SET collation_connection = utf8_unicode_ci'
    7. init_connect='SET NAMES utf8'
    8. character-set-server=utf8
    9. collation-server=utf8_unicode_ci
    10. skip-character-set-client-handshake
    11. skip-name-resolve

    4.重启mysql服务 使其配置生效

    docker restart mysql

    5.设置docker启动时就运行mysql

    docker update mysql --restart=always

    6.重启mysql

    docker restart mysql

    四、进入容器

    -it后跟要进入容器的id 或者名字

    docker exec -it 8cbca6e62b09 /bin/bash

    或者

    docker exec -it mysql /bin/bash

    注:如果要正常退出不关闭容器,用exit命令,或者按Ctrl+P+Q退出容器

    五、mysql操作

    1进入mysql

    mysql -uroot -p

     输入密码,进入mysql

    2 库表操作

    1. #创建db01库
    2. CREATE DATABASE db01;
    3. #进入db01库
    4. use db01;
    5. #创建表t1
    6. CREATE table t1(id int ,nams varchar(20));
    7. #新增数据
    8. INSERT into t1 VALUES (1,"aa");
    9. #查询t1表
    10. SELECT * from t1;
    11. #新增数据
    12. INSERT into t1 VALUES (2,"王五");
    13. #查询t1表
    14. SELECT * from t1;

     运行语句界面如下:

    注:插入带有汉字的数据报错时

    (1)、检查是否设置了my.cnf文件

    (2)、检查是否重启了mysql服务,使配置生效

    (3)、查看数据库字符是否已经是utf-8

    SHOW VARIABLES LIKE 'character_set_%';

    show create database db01;

    如果不是则设置一下

    alter database db01 character set utf8;

    在确定数据库已经是utf-8的格式下,检查一下表字段的字符集是否为utf-8

    SHOW FULL COLUMNS FROM t1;

    如果不是,删表重新创建。

    3 查看创建的库表

    navicat登录mysql    

    测试连接提示不通,需要在云服务的安全组设置一下规则

    登录成功,看到刚刚添加的库表信息

       

  • 相关阅读:
    全网最牛自动化测试框架系列之pytest(11)-Allure生成测试报告
    【VM-Tools】Linux快速安装
    创意电子学-小知识:晶体管
    力扣刷题 day53:10-23
    刘德华被奥迪第三方策划公司给坑了
    Oracle杀会话回滚时间长处理办法
    springboot+vue的校友会捐赠信息java社交系统
    【Day 11 协同过滤算法与Apriori算法】
    44.【list链表的简单属性】
    [极客大挑战 2019]RCE ME
  • 原文地址:https://blog.csdn.net/supersolon/article/details/133016895