docker安装mysql5.7
原创大约 3 分钟dockermysql数据库
docker安装mysql5.7
提示
centos系统安装mysql,请跳转centos7安装mysql5.7
创建mysql容器
拉取官方mysql镜像
本教程以安装mysql5.7为例
docker pull mysql:5.7
查看本地镜像
docker images
创建本地挂载目录
mkdir -p /data/docker/mysql/data
mkdir -p /data/docker/mysql/conf
mkdir -p /data/docker/mysql/logs
touch /data/docker/mysql/conf/my.cnf
创建运行脚本
cd /data/docker/mysql/
vim create_mysql5.7.sh
保存以下内容
#!/bin/bash
name="mysql57"
docker rm -f $name
docker run -itd --name $name -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/docker/mysql/conf:/etc/mysql/conf.d \
-v /data/docker/mysql/data:/var/lib/mysql \
-v /data/docker/mysql/logs:/var/log/mysql \
-v /data/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
--restart=always \
mysql:5.7
## 参数说明
# -itd 让容器在后台运行
# -v 配置挂载本地目录 宿主机目录:容器目录
# -p 配置映射端口 宿主机端口:容器内部端口(此处为将容器的3306端口映射到主机的3306端口)
# --name 容器名
# --restart=always 设置容器总是自动重启(docker重启后,会自启)
# MYSQL_ROOT_PASSWORD=123456 设置mysql数据库root密码为123456(根据自己需求修改)
执行脚本
chmod +x create_mysql5.7.sh
./create_mysql5.7.sh
验证启动是否成功
docker logs mysql57
# 若最后一行输出下面一句话则代表未报错启动成功
Version: '5.7.38' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
# 当然你也可以使用docker ps 查看状态和端口
docker ps
进入mysql容器验证
docker exec -it mysql57 bash
mysql -uroot -p
OK 安装成功
配置mysql
# 退出mysql
exit;
# 退出容器
exit;
# 编辑配置文件
vim /data/docker/mysql/conf/my.cnf
保存以下内容
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
# 对其他远程连接的mysql客户端的配置
[mysql]
default-character-set=utf8
# 本地mysql服务的配置
[mysqld]
# 设置3306端口
port = 3306
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# 允许最大连接数
max_connections=200
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#修改时区
default-time_zone='+8:00'
skip-name-resolve
#5.7高版本没有修改sql_mode会报ONLY_FULL_GROUP_BY错误
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
到此安装完成
若你想创建用户,配置用户权限,继续往下看
配置mysql权限
提示
下方命令中 host
可设置为 localhost 和 %,localhost 仅本机可链接mysql,% 所有IP均可链接
# 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
# 创建数据库,设置utf8格式
create database databasename default character set utf8 collate utf8mb4_unicode_ci;
# 分配数据库权限
GRANT ALL ON databasename.tablename TO 'username'@'host';
# 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
# 撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
# 修改用户密码
set password for 'username'@'localhost' = password('newpassword');
# 刷新权限
FLUSH PRIVILEGES;