docker 生成MySQL 容器

该博客介绍了如何在Ubuntu22.04.1LTS系统中安装MySQL、Docker和docker-compose,然后详细阐述了如何构建并启动包含MySQL的Docker容器,包括配置my.cnf文件和编写docker-compose.yml文件。最后,演示了如何进入容器创建数据库、用户并设置权限。
摘要由CSDN通过智能技术生成

一、环境

系统:Ubuntu 22.04.1 LTS

二、基础软件安装(如果已安装则忽略)

# 更新源
apt update

# 安装mysql-server,此命令也会把mysql-client也给安装了
apt install mysql-server -y
 
# 安装docker
apt install docker.io -y

# 安装docker-compose
apt install docker-compose

三、构建mysql 容器的docker-compose.yml

1、拉取mysql镜像

# 搜索mysql镜像
docker search mysql
 
# 从搜索结果选择mysql这个镜像
docker pull mysql

2、配置mysql.cnf

# 新建mysql文件夹并在mysql下新建config文件夹

cd /var

mkdir mysql

chmod -R 777 /var/mysql

cd /var/mysql

mkdir config

  3、创建my.cnf文件:vim  /var/mysql/config/my.cnf 

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock
default-character-set = utf8

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
#
# * Basic Settings
#
#user       = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /mysql
tmpdir      = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages = en_US
skip-external-locking
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

# * Fine Tuning
#
max_connections     = 800
connect_timeout     = 10
wait_timeout        = 6000
max_allowed_packet  = 16M
thread_cache_size       = 256
sort_buffer_size    = 4M
bulk_insert_buffer_size = 16M
tmp_table_size      = 128M
max_heap_table_size = 128M

# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover_options = BACKUP
key_buffer_size     = 128M
#open-files-limit   = 2000
table_open_cache    = 400
myisam_sort_buffer_size = 512M
concurrent_insert   = 2
read_buffer_size    = 2M
read_rnd_buffer_size    = 1M

# * Query Cache Configuration
#
# Cache only tiny result sets, so we can fit more in the query cache.
query_cache_limit       = 128K
query_cache_size        = 64M

slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 10

expire_logs_days    = 10
max_binlog_size         = 100M

# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine  = InnoDB
innodb_buffer_pool_size = 4G
innodb_log_buffer_size  = 8M
innodb_file_per_table   = 1
innodb_open_files   = 400
innodb_io_capacity  = 400
innodb_flush_method = O_DIRECT

[mysqldump]
quick
quote-names
max_allowed_packet  = 128M

[mysql]
default-character-set = utf8

[isamchk]
key_buffer      = 16M


# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!include /etc/mysql/mariadb.cnf
!includedir /etc/mysql/conf.d/

4、构建docker-compose.yml

version: '3'
services:
  database:
    image: mysql
    container_name: mysql
    restart: always
    ports:
     - 3306:3306
    volumes:
     - /var/mysql:/var/mysql
     - /var/mysql/config/my.cnf:/etc/mysql/conf.d/mysql.cnf
     - /etc/localtime:/etc/localtime:ro
    environment:
     - TZ=Asia/Shanghai
     - MYSQL_ROOT_PASSWORD=123456

5、启动容器: docker-compose up -d

四、进入mysql容器创建用户、设置用户权限、创建数据库

1、进入mysql 容器,并以root角色登录mysql

# 进入 mysql 容器
docker exec -it mysql bash

# 以root 登录mysql
mysql -uroot -p 

   输入任意密码 

2、给root赋以全部权限

use mysql;

select Host, user from user;

GRANT ALL ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;

3、创建一个新数据库和一个新的用户

注:此步骤是为了 后续搭建sonic云真机平台准备

# 创建数据库sonic
create database sonic character set utf8 collate utf8_general_ci


# 创建用户sonic
create user sonic identified by 'sonic';

grant all on *.* to 'sonic'@'%';

flush privileges;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值