docker安装mariadb

1.官方网址
https://hub.docker.com/_/mariadb/ 
=========================================================================================              

2. 拉取官方镜像
(1) docker pull mariadb:10.4.1
(2)查看镜像详情:docker run -it --rm --entrypoint=/bin/sh mariadb:10.4.1
(3)入口:docker-entrypoint.sh mysqld
(4)官方镜像配置文件目录结构:/etc/mysql
/etc/mysql
|-- conf.d
|   |-- docker.cnf
|   |-- mysqld_safe_syslog.cnf
|-- debian-start
|-- debian.cnf
|-- mariadb.cnf
|-- mariadb.conf.d
|-- my.cnf
=========================================================================================

3.准备配置文件到宿主机以便于挂载
(1)从镜像中拷贝出配置文件(镜像中home目录是空的)
->拷贝/etc/mysql目录:docker run --rm -v /etc/mysql:/home --privileged=true mariadb:10.4.1 mv /etc/mysql /home
=========================================================================================
  
4. 运行镜像
(1)在文件docker-compose.yml中添加运行项
mariadb:
                image: mariadb:10.4.1
    container_name: mariadb
    privileged: false
    ports:
                    - 3306:3306
    restart: always
    environment:
                    MYSQL_ROOT_PASSWORD: 123456
    volumes:
                    - /var/lib/mysql:/var/lib/mysql
                    - /etc/mysql/conf.d:/etc/mysql/conf.d
        - /var/log/mysql:/var/log/mysql
(2)运行:docker-compose up -d mariadb
(3)进入容器:docker exec -it mariadb /bin/sh
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
或直接运行:
docker run --name mariadb -d -p 3306:3306 --restart always -v /mnt/sda1/home/lib/mysql:/var/lib/mysql -v /mnt/sda1/home/etc/mysql/conf.d:/etc/mysql/conf.d -v /mnt/sda1/home/log/mysql:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 mariadb:10.4.1
-错误信息:InnoDB: Header page consists of zero bytes in datafile
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
修改已创建容器的重启策略:
docker update --restart always mariadb
=========================================================================================

4.常见问题
(1)服务器异常关闭,导致数据库服务启动不了,报错:[ERROR] InnoDB: Missing MLOG_CHECKPOINT at 34853780 between the checkpoint 34853780 and the end 34853376
解决方法:删除/var/lib/mysql目录下的ib_logfile0和ib_logfile1这二个文件(ib_logfile0和ib_logfile1是mysql用来存储操作执行的日志文件,用于事务暂存和回滚),再重启数据库
还有错误:InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值