在 Docker 的 CentOS7 镜像 中安装 mysql
在 Docker 的 CentOS7 镜像 中安装 mysql
本来以为是个很简单的过程居然折腾了这么久,之前部署云服务器时也没有好好地记录,因此记录下。
特别提醒:本文的操作环境是在 Docker 的 CentOS7 镜像中,与实际的 CentOS7 环境会略有不同(在 CentOS7 中使用 yum 安装后即可直接使用,而在镜像中多了很多配置步骤和报错解决)。而如果启动容器使用 docker run -it --privileged --name centos7 centos:7 /usr/sbin/init 似乎与真实环境比较接近。本文可作为 Linux 下安装 mysql 的参考,但在容器中安装 mysql 实际意义不大,官方已经有了啊233333。
简要注意点:下载并安装源、启动时错误解决、开启关闭服务、首次登陆修改密码、允许从任意 ip 以 root 身份登陆
首先使用:wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 下载mysql的官方源(可能需要先安装 wget )
之后使用:rpm -ivh mysql57-community-release-el7-9.noarch.rpm 安装源
使用 yum install mysql-server 安装,并启动 mysqld --user root (由于云服务器默认使用 root)。
此时可能立刻停止后退出,并报 Can't open and lock privilege tables: Table 'mysql.user' doesn't exist 错误,查看配置文件 /etc/my.conf,发现其中有一句 datadir=/var/lib/mysql,因此使用 mysqld --initialize --user=mysql --datadir=/var/lib/mysql 初始化mysql。
再次报错并提示 --initialize specified but the data directory has files in it. Aborting,则删除并重建/var/lib/mysql 目录后即可。
使用 cat /var/log/mysqld.log | grep password 查看临时密码,登陆后用 SET PASSWORD FOR root@localhost = password('<PASSWORD>'); 修改密码。如果提示密码不合要求,用 SET global validate_password_policy=LOW; 降低密码要求 。
设置允许 root 从任意 ip 登陆
use mysql;
select user, host from user;
update user set host = '%' where user = 'root'; # 原值为localhost
flush privileges;
亦可使用:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '<YOUR_ROOT_PASSWORD>' WITH GRANT OPTION;
flush privileges;
其中 “ *.* ” 代表所有资源所有权限, “ 'root'@% ” 其中 root 代表账户名,% 代表所有的访问地址,也可以使用一个唯一的地址进行替换,只有一个地址能够访问。如果是某个网段的可以使用地址与%结合的方式,如 10.0.42.%。IDENTIFIED BY 'root',这个 root 是指访问密码。WITH GRANT OPTION 允许级联授权。
切记无论什么时候一定要搞清命令的含义再执行!!!
鄙人就是因为没有搞清楚此条命令的含义,照抄照搬。别人的 <YOUR_ROOT_PASSWORD> 写 “root” 我也跟着写 “root”,自然搞得一团糟而且登陆不上去。
启动 mysql 服务。有两种方式,但必须组合使用,不能混用:
- 使用 systemctl (针对CentOS 7.0及以上版本,7.0 以下版本使用 service 命令)
systemctl start mysqld
systemctl stop mysqld
- 使用 mysql 程序自带的命令
# 由于云服务器默认root登陆,需要加上 --user root
# & 号表示后台运行,否则会阻塞
mysqld start --user root &
mysqladmin -u root -p shutdown
完成!
参考
mysql 安装配置:
https://www.cnblogs.com/zymnstlm/p/12381627.html
https://www.cnblogs.com/zhongxinWang/p/10606733.html
mysql 设置允许 root 远程登录:
https://blog.csdn.net/zhazhagu/article/details/81064406
mysql 服务的启动和关闭:
https://blog.csdn.net/lihuarongaini/article/details/100119869
mysql 密码强度设置:
https://blog.csdn.net/hello_world_qwp/article/details/79551789
mysql 初始化:
https://blog.csdn.net/weixin_42654817/article/details/88722778
在 Docker 的 CentOS7 镜像 中安装 mysql的更多相关文章
- Centos7服务器中安装MySQL(选择一个你想要的版本)
开始,我默认安装了MySQL8,但是在测试的时候发现通过Hibernate连接之前的MySQL5.7的代码运行在连接新版本的库的时候发生异常,出于时间原因没有深度排查 但是我严重怀疑是版本匹配问题,为 ...
- centos7.4中安装docker
#!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...
- 在docker中安装mysql
#!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...
- centos7中安装mysql
centos7中安装mysql网上已经很多资源了,我就不在赘述了.我这里只是记录下我安装的时候出现的一些问题. 原文:https://www.cnblogs.com/bigbrotherer/p/72 ...
- Windows10系统的Linux子系统中安装MySQL数据库心得
后端开发童鞋们, 自己开发机用的是Windows系统电脑(台式机或笔记本), 而开发的程序和使用的数据库等要运行在Linux服务器上, 这种情况有木有? 提前声明: 本文并不讨论操作系统的比较, 以及 ...
- Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用
目录 1 下载 Docker 镜像 2 部署Web项目 2.1 通过Dockerfile自定义项目镜像 2.2 启动自定义镜像, 生成一个容器 2.3 另一种启动方式: 交互式启动 3 (附) 向镜像 ...
- 在 virtualbox 的 centos7 虚拟机中安装增强工具
在 virtualbox 的 centos7 虚拟机中安装增强工具 centos7 刚刚安装完成时,直接安装 virtualbox 增强工具会出错,需要先把 gcc / kernel-devel / ...
- Linux centos7环境下安装MySQL的步骤详解
Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...
- centos 7 中安装 mysql 5.7
centos 7 中安装 mysql 5.7 环境说明: 查看centos的版本:cat /etc/redhat-release 安装和配置步骤: 下载 mysql 源安装包: sudo curl - ...
随机推荐
- Git常见的操作及命令
Git的下载安装 安装直接去Git官方网站https://git-scm.com/下载后安装即可. Git常用命令 git init初始化本地仓库(没有仓库就创建) git clone克隆远程仓库到本 ...
- minio设置永久访问链接
1.通过minio分享的链接只能支持7天. 解决方案是设置对应的bucket 可通过路径直接访问.(必须通过minio client才能设置下载策略) wget https://dl.min.io/c ...
- 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...
- JunAMS v1.2.1.20190403代码审计笔记
前言 CNVD-2020-24741 过程 JunAMS是以ThinkPHP为框架的开源内容管理系统,本地搭建受影响版本JunAMS v1.2.1.20190403 前台没有上传功能,进入后台.发现在 ...
- 题解 big
传送门 题面里那个式子 考场上我推了半天那个式子代表什么意思,但就是没想到位运算 \(\lfloor \frac{2x}{2x^n} \rfloor \iff x\gg(n-1)\), 即将x的第n位 ...
- Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)
请访问原文链接:https://sysin.org/blog/linux-partition-expansion/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...
- 浅看spa单页应用路由
路由观察浏览器的URL的变更.当URL 变更时,路由会解析它并生成一个新的路由实例. 一个基本的路由是这样的: class Router { private _defaultController: s ...
- Socket通信协议解析(文章摘要)
参考网址: https://zhuanlan.zhihu.com/p/84800923 在计算机通信领域,socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方 ...
- linux centos 设置笔记本合盖不待机
1.设置笔记本合盖不待机 打开配置文件 vi /etc/systemd/logind.conf 将 HandleLidSwitch 变量前的注释 # 去掉 修改 HandleLidSwitch 变量参 ...
- 【C语言】第4章 选择结构程序设计
第4章 选择结构程序设计 C语言有两种选择语句: if 语句,实现两个分支的选择结构 switch 语句,实现多分支的选择结构 输入3个数a,b,c,要求按由小到大的顺序输出. 可以先用伪代码写出算法 ...