Docker安装MySQL

一:查找MySQL镜像

docker search mysql

二:拉取MySQL镜像(这里我拉取5.7)

docker pull mysql:5.7

三:运行MySQL容器

docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456abcdef --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

参数说明:

  • run run 是运行一个容器
  • -d  表示后台运行
  • -p  表示容器内部端口和服务器端口映射关联
  • --privileged=true  设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
  • -v /docker/mysql/conf/my.cnf:/etc/my.cnf  将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
  • -v /docker/mysql/data:/var/lib/mysql  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
  • -e MYSQL_ROOT_PASSWORD=123456abcdef  设置MySQL数据库root用户的密码
  • --name mysql  设值容器名称为mysql
  • mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器
  • --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码

四:创建MySQL用户

1.进入容器

docker exec -it mysql bash

2.登录MySQL

mysql -uroot -p

3.创建用户(用户名:busapp,密码busapp1234abcd)

GRANT ALL PRIVILEGES ON *.* TO 'busapp'@'%' IDENTIFIED BY 'busapp1234abcd' WITH GRANT OPTION;

五:设置MySQL不区分大小写

# 进入docker的MySQL容器,编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]下添加如下:
lower_case_table_names=1

六:MySQL-this is incompatible with sql_mode=only_full_group_by错误解决方案

1.查看sql_mode的语句如下

select @@GLOBAL.sql_mode;

2.sql语句暂时性修改sql_mode

set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

3.需修改mysql配置文件,永久生效

# mysqld.cnf位于/etc/mysql/mysql.conf.d/文件夹下
cd cd /etc/mysql/mysql.conf.d/
vim vim mysqld.cnf

# 在最后,添加如下代码
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

4.开启MySQL binlog日志

a.查看binlog日志的状态

show variables like '%log_bin%';

b. 在my.cnf配置文件中添加如下语句

server-id=1
log-bin=/var/lib/mysql/mysql-bin

重启解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值