docker-compose部署mysql8

切换到mysql目录

cd /mnt/mysql

创建MySQL数据挂载目录

mkdir data
  • 创建mysql配置挂在目录
mkdir config

创建mysql yaml文件

touch mysql.yml

编辑yaml文件

vi mysql.yml

添加如下内容

    version: '2'
    services: mysql
    container_name: mysql8
    image: mysql:8.0.26
    ports:
        - "3306:3306"
    restart: always
    environment:
        - MYSQL_ROOT_PASSWORD: 123456
    volumes:
        - "/mnt/mysql/data:/var/lib/mysql"
        - "/mnt/mysql/config:/etc/mysql/conf.d"

使用docker compose创建并运行mysql容器

docker-compose -f mysql.yml up -d

查看容器id

docker ps

进入容器内部

docker exec -it 容器id sh

连接到MySQL

mysql -uroot -p123456

修改root账号的密码

alter user 'root'@'%' identified with mysql_native_password by '123456';
alter user 'localhost'@'%' identified with mysql_native_password by '123456';
flush privileges;

使用source执行sql文件乱码问题解决方案1

查看数据库编码

show variables like '%char%';

如以下配置不是utf-8,则都设置为utf-8

set character_set_client=utf8mb4;
set character_set_connection=utf8mb4;
set character_set_database=utf8mb4;
set character_set_results=utf8mb4;
set character_set_server=utf8mb4;

使用source执行sql文件乱码问题解决方案2

docker ps -- 查看容器
docker exec -it 容器id sh -- 进入容器内部
docker cp 容器id:/etc/mysql/my.cnf /mnt/mysql/config -- 复制容器内部的配置文件
vi /mnt/mysql/config/my.cnf
# 添加以下配置
[mysqld]
character_set_server = utf8
init_connect='SET NAMES utf8'

[mysql]
default-character-set = utf8

[mysql.server]
default-character-set = utf8

[mysqld_safe]
default-character-set = utf8

[client]
default-character-set = utf8

数据库连接工具无法连接问题

use mysql;
update user set host = '%' where user = 'root';
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

posted on   mshfx  阅读(55)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

点击右上角即可分享
微信分享提示