1.Docker单机安装MySQL
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
- 1.前言
- 2.拉取镜像
- 3.配置mysql目录和my.cnf文件
- 4.docker run mysql 4.1.简单启动
- 4.2.使用my.cnf文件启动
- 4.3.验证是否成功
- 4.4 数据库管理
1.前言
docker安装就不介绍了,默认docker已经安装成功
服务器版本:CentOS Linux release 7.6.1810 (Core)
数据库版本:mysql:5.7.27
2.拉取镜像
>docker pull mysql:5.7.27
3.配置mysql目录和my.cnf文件
>mkdir -p /data/mysql
>cd /data/mysql
>mkdir conf data logs
>chmod -R 777 logs
> cd /data/mysql/conf
> touch my.cnf
> vim my.cnf
my.cnf配置文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
注意:slow_query_log_file、general_log_file、log_error其实是mysql容器内部目录,需要在启动容器时挂载到宿主机目录/data/mysql/logs中
4.docker run mysql
4.1.简单启动
> docker run --name mysql-5.7.27 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27
- --name mysql-5.7.27:mysql-5.7.27是容器名称,根据自己需要自行命名,见名知意即可
- -p 3306:3306:前面3306是宿主机端口,后面3306是容器端口,-p 是将宿主机端口和容器端口进行映射
- -e MYSQL_ROOT_PASSWORD=123456:设置mysql的root用户密码,可在启动后进入mysql容器进行修改root密码
- -d mysql:5.7.27:用哪个镜像启动
4.2.使用my.cnf文件启动
注意:保证/data/mysql/conf有上面配置的my.cnf,并保证port没有使用过,可定义没有使用过的端口号:3307,3308....
> docker run --name mysql-5.7.27 --network=host -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -v /data/mysql/conf:/etc/mysql -v /data/mysql/logs:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -d mysql:5.7.27
说明:
- --name mysql-5.7.27:mysql-5.7.27是容器名称,根据自己需要自行命名,见名知意即可
- --network=host:指定容器的网络连接类型,支持 bridge/host/none/container四种类型
- -e MYSQL_ROOT_PASSWORD=123456:设置mysql的root用户密码,可在启动后进入mysql容器进行修改root密码
- --privileged=true:给容器加特权
- -v /data/mysql/conf:/etc/mysql:挂载外部目录,指定mysql启动my.cnf位置
- -v /data/mysql/logs:/var/log/mysql:挂载mysql log志目录
- -v /data/mysql/data:/var/lib/mysql:挂载mysql数据data目录
- -d mysql:5.7.27 用哪个镜像启动
4.3.验证是否成功
>docker ps -a
status 如果是up则代表启动成功,若是下图则代表没有启动成功
运行下面命令查看日志,看报错信息
> docker logs -f mysql-5.7.27
或者进入/data/mysql/logs目录查看日志
- mysql-error.log:启动日志,若没有启动成功,则会打印错误信息,没有错误,则打印成功信息
- mysql-general.log:全局日志
- mysql-slow.log:慢日志
运行下面命令,进入mysql容器内部
> docker exec -it mysql-5.7.27 bash
进入mysql命令端
> mysql -uroot -p123456
或者通过下面命令直接进入mysql命令端
4.4 数据库管理
- 根据需要修改root初始密码:
set password for 'root'@'%' = password("newpassword");
flush privileges; --刷新系统权限表
- 指定ip访问数据库:
set password for 'root'@'xx.xx.xx.xx' = password("newpassword");
set password for 'root'@'192.168.%' = password("newpassword");
flush privileges;
- 创建用户:
create user 'username'@'%' identified by 'password';
flush privileges;
- 查询用户:
select host,user,authentication_string, plugin from mysql.user;
- 展示用户有哪些数据库:
show grants for username;
show grants for 'city_user'@'192.168.32.%';
- 创建数据库并制定字符集、排序规则
create database db01 default character set utf8mb4 collate utf8mb4_general_ci;
- -- 分配用户数据库权限
grant all privileges on *.* to 'someuser'@'localhost'; -- 分配所有库
grant all privileges on dbname.* to 'someuser'@'%'; -- 分配某个库
grant all on *.* to 'someuser'@'%' identified by 'complex-password'; -- 分配所有权限
grant select on testdb.* to someone@'%'; -- 分配select
grant insert on testdb.* to someone@'%'; -- 分配insert
grant select, insert, update, delete on testdb.* to someone@'%'; -- 分配增删改查权限
flush privileges;
- 关闭全局日志
mysql > show global variables like '%general%';
mysql > set global general_log = off;
mysql > flush privileges;
mysql > show global variables like '%general%';
- KVM MYSQL 8.0.13 单机 FOR OEL7.5 docker安装文档
- 在centos7.2上安装Mysql(使用Docker)
- docker 安装mysql8.0并且暴漏外部的连接
- CentOS7中使用Docker安装Mysql以及Tomcat
- docker学习——安装mysql
- docker 安装mysql
- ubuntu下在docker中安装mysql5.6 的方法
- Ubuntu16.04 适用docker安装MySQL,并将数据挂载到本地目录
- Docker 安装MySQL
- docker安装mysql
- Linux的Docker上安装MySQL记录
- 需要安装 MongoDB,RabbitMQ,或者 MySQL?使用 Docker 来简化开发和测试
- linux小白成长之路7————Docker安装mysql
- Docker安装Mysql
- Docker 安装 MySQL
- docker安装redis、mongodb、mysql等
- 【转载】MySQL单机多实例安装并配置主从复制
- 【数据库】-【DB】-Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】-安装-单机
- Centos下二进制方式安装MySQL (Docker-Centos镜像环境)
- 基于Docker技术Mysql5.6源码安装