zoukankan      html  css  js  c++  java
  • win7下docker环境centos容器中安装mysql5.7

    docker环境基于镜像skiychan/nginx-php7,进行安装

    ps:skiychan/nginx-php7此镜像已封装nginx1.15.3+php7.2.9

    1、环境配置

    配置共享文件夹

    配置端口映射

    2、进入容器

    docker run  -dti -p 3306:3306 -v /www:/data/www --name dnmp skiychan/nginx-php7 /bin/bash

    docker exec -ti dnmp /bin/bash

    安装mysql:

    1)准备:

    先进入目录/usr/local/src

    cd /usr/local/src

    下载

    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

    解压 

    tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  

    复制到 /usr/local/mysql

    cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql

    2)添加用户和用户组

    添加系统mysql组 

       groupadd mysql

    添加mysql用户

     useradd -r -g mysql mysql 

    3)安装数据库

    切到mysql目录

     cd /usr/local/mysql

    修改当前目录拥有者为mysql用户

     chown -R mysql:mysql ./

    安装数据库

     bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    生成了临时密码

    执行以下命令创建RSA private key 

    bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

    修改当前目录拥有者为mysql用户

     chown -R mysql:mysql ./

    4、配置my.cnf 

    vim /etc/my.cnf   

    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    #不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)
    lower_case_table_names = 1
    log-error=/var/log/mysqld.log
    pid-file=/usr/local/mysql/data/mysqld.pid

    添加开机启动

         cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

    修改 

     vim /etc/init.d/mysqld   

    添加路径 在46行   

     basedir=/usr/local/mysql
     datadir=/usr/local/mysql/data

    5)、启动mysql   service mysqld start 

    出现-bash: service: command not found

    解决方式如下:

     yum list | grep initscripts

    会出现

    initscripts.x86_64                         9.49.30-1.el7_2.3           updates

    # yum install initscripts

    正常安装完成之后就可以使用service命令

     加入开机起动  

     chkconfig --add mysqld  

    6)登录修改密码

    mysql -uroot -p 上面初始化时的密码

    如果出现错误 需要添加软连接

      ln -s /usr/local/mysql/bin/mysql /usr/bin

    如果忘记初始密码,可用下面的方式修改:

    vi /etc/my.cnf
    在[mysqld]的段中加上一句:skip-grant-tables
    例如:
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    skip-grant-tables
    保存并且退出vi。

    重新启动mysqld 
    # service mysqld restart
    Stopping MySQL: [ OK ]
    Starting MySQL: [ OK ]

    使用 root 用户登录到 mysql:mysql -u root 

    切换到mysql数据库,更新 user 表:

    update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';

    在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string

    退出 mysql,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内容

    重启 mysqld 服务,再用新密码登录即可

  • 相关阅读:
    【学习总结】SQL学习总结之SQL语法
    【学习总结】SQL学习总结之认识SQL
    【JAVA】JAVA8-String.join字符串拼接
    【JAVA】Scanner.next()与Scanner.nextLine()的区别
    【JAVA】java中split以"." 、""、“|”分隔字符串
    【问题解决方案】apple music取消订阅
    【问题解决方案】MacBook Pro那些坑
    【JAVA】Java循环语句中的continue跳转进入下一次循环是否判断循环条件
    【问题解决方案】Markdown中部分字符显示为格式因而得不到预期结果的问题解决
    【JAVA】哈希表HashMap中java8新增功能概述
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/9606260.html
Copyright © 2011-2022 走看看