使用docker 搭建mysql

拉取

1
git clone git@github.com:code-lives/docker-mysql.git

运行开启

1
docker-compose up -d

关闭

1
docker-compose down

mysql 进入 mysql 创建一个 test 的远程连接账号 (本地不需要)

1
2
3
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
FLUSH PRIVILEGES;

mysql 远程连接(进入容器创建账号)

1
2
3
4
地址 127.0.0.1
端口 3306
账号 test
密码 123456

数据库导入问题

数据库字段类型【timestamp】默认值 CURRENT_TIMESTAMP 出现:datetime value: ‘0000-00-00 00:00:00’
  1. 查询
1
SHOW VARIABLES LIKE 'sql_mode%';
  1. 先复制出一份
1
删除里面的 NO_ZERO_IN_DATE,NO_ZERO_DATE(每个人的sql_mode 不一样 先查询自己的在替换)
  1. 结果 mysql 配置文件自行修改【mysqld.cnf】
1
2
3
[mysqld]
sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

每天凌晨一点备份(linux 服务器) crontab 自行修改 copy.sh 文件路径 和 crontab 路径

1
0 1 * * *  /mysql/copy.sh