跳至主要內容

docker安装mysql5.7

tanmantang原创大约 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;

相关连接

mysql docker官方镜像地址open in new window