docker安装mysql
- 拉取mysql镜像
docker pull hub.c.163.com/library/mysql:5.7
- 重命名镜像名
docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7
- 创建容器且安装镜像.启动。
docker run --name mysql-main -p3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- 通过命令进入mysql-main容器
docker exec -it mysql-main bash
- 设置mysql远程的授权信息
mysql -uroot -p
grant all privileges on *.* to root@"%" identified by "root" with grant option;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
- 设置Mysql查询忽略大小写
进入docker的MySQL容器,编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件
修改完成后重启容器 sudo docker restart
在[mysqld]下添加如下:
[mysqld]
lower_case_table_names=1
- Mysql5.7的查询问题
Expression:SELECT list is not in GROUP BY clause and contains nonaggregated column
MySQL 5.7.5实现了对功能依赖的检测。认情况下启用了only_full_group_by SQL模式,那么MySQL就会拒绝选择列表、条件或顺序列表引用的查询
sql-mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
- Mysql5.7修改密码
update mysql.user set authentication_string=password('root') where user='root'
- 启动docker中 MySQL参数含义
--restart=always
--privileged=true
-v
-e MYSQL_ROOT_PASSWORD=root
-d
--lower_case_table_names=1