1.创建必要的目录
# 创建目录
mkdir -p ~/docker/software/mysql/{conf,log,data}
2.如果没有docker-compose.yml文件的话,先创建docker-compose.yml
配置文件一般长这个样子
version: '3'services:mysql:image: mysql:5.7.36container_name: mysqlports:- "3306:3306"volumes:- /etc/localtime:/etc/localtime- ~/docker/software/mysql/conf:/etc/mysql/mysql.conf.d- ~/docker/software/mysql/log:/var/log/mysql- ~/docker/software/mysql/data:/var/lib/mysqlenvironment:- MYSQL_ROOT_PASSWORD=root- MYSQL_DATABASE=test- TZ=Asia/Shanghaicommand: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_cirestart: always
3.配置Mysql
# 如果容器存在但未运行,先删除
docker rm -f mysql# 确保配置目录存在
mkdir -p ~/docker/software/mysql/{conf,log,data}# 创建配置文件
cat > ~/docker/software/mysql/conf/mysqld.cnf << 'EOF'
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server-id=1
EOF
4.启动服务
docker compose up -d
5.进入容器配置 MySQL
# 进入容器
docker exec -it mysql bash# 登录 MySQL
mysql -uroot -proot# 在 MySQL 中执行以下命令:
# 授权远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;# 检查 binlog 配置
SHOW VARIABLES LIKE 'log_%';
SHOW MASTER STATUS;# 退出 MySQL
exit# 退出容器
exit
6.测试连接
# 3306端口,本地测试:
mysql -h127.0.0.1 -P3306 -uroot -proot# 或者用其他 MySQL 客户端工具连接:
主机:你的服务器IP
端口:3306
用户名:root
密码:root