登录
首页 >  数据库 >  MySQL

docker搭建mysql:5.7.29

来源:SegmentFault

时间:2023-02-16 15:31:13 294浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《docker搭建mysql:5.7.29》,就带大家讲解一下MySQL、docker知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

拉取对应版本镜像

|-- conf.d
|   |-- docker.cnf
|   |-- mysql.cnf
|   |-- mysqldump.cnf
|-- my.cnf -> /etc/alternatives/my.cnf
|-- my.cnf.fallback
|-- mysql.cnf
|-- mysql.conf.d
    |-- mysqld.cnf
注意:不要映射:
/etc/mysql/my.cnf
,该文件是个软连。即使映射成功配置文件是不会生效的。
当前页可以新建一个配置文件映射到:
/etc/mysql/conf.d/
目录下

编写脚本

├─mysql5.7
│      ├─conf
│      │  └─mysql.conf.d
│      │          mysqld.cnf
│      └─scripts
│              run.sh

文件:mysqld.cnf

[mysql]
default-character-set=utf8

[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/

pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock

#log-error    = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address    = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=1

文件:run.sh

#!/usr/bin/env bash

# 设置MySQL端口
mysql_port=$1
if [ ! "$mysql_port" ]; then
  mysql_port=3306
fi

# 脚本当前目录
scrpts_path=$(cd $(dirname "$0") || exit; pwd)

# MySQL根目录
dirpath=$(dirname "$scrpts_path")

# 创建MySQL数据存储目录
mkdir -p "$dirpath"/data

# 启动MySQL服务
docker rm mysql_"$mysql_port" -f

docker run -d -p "$mysql_port":3306 --name mysql_"$mysql_port" \
-v="$dirpath"/conf/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v="$dirpath"/data:/usr/local/mysql/data/ \
-v="$dirpath"/data:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
mysql:5.7.29

说明

  • 修改容器中的配置文件
  • 修改mysql数据目录
  • 设置mysql初始密码

启动MySQL服务

sh scripts/run.sh

执行:docker ps 查看服务是否启动成功

注意:data 目录不要随便删除

注意:该镜像自动创建远程账号:root 密码就是初始密码

进入MySQL服务容器内

docker exec -it mysql bash

连接MySQL

mysql -uroot -p

# 初始密码:123

修改密码

按需操作

# 修改本地连接账号-置空
alter user 'root'@'localhost' identified by '';

# 修改远程账号密码-置空
alter user 'root'@'%' identified by '';
注意:此时连接mysql服务器root密码不再是初始密码,而是刚才设定的密码

---------------至此部署完毕---------------

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表