在 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 - ...
随机推荐
- 嵌入式linux启动过程详解
启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...
- Tag Helper 标签助手
简介 标签助手是Razor 页面中自动生成HTML语句的可重用组件.标签助手对应特定的HTML标签,ASP.NET Core 包含大量与HTML标签对应的预定义标签助手. Razor页面中的标签助手作 ...
- noip 模拟 7
我花了我多久的rp啊-- 考试经过 这次是三道题,依旧先看一遍,然后从头开始做 T1一看,这好像是KMP?等等,我好像忘了啊你个废,没事哈希也能做,On似乎可以呀,一波操作,我是不是要A题了? 转到T ...
- mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead
参考:mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead mo ...
- WPF中实现动画的几种效果(最基础方式)
参考网址:https://blog.csdn.net/qq_45096273/article/details/106256397 在动画之前我们先了解一下几个声明式动画中常用的元素: 一.Storyb ...
- Qt元对象和属性系统详解
Qt 是一个用标准 C++ 编写的跨平台开发类库,它对标准 C++ 进行了扩展,引入了元对象系统.信号与槽.属性等特性,使应用程序的开发变得更高效. 本节将介绍 Qt 的这些核心特点,对于理解和编写高 ...
- 【mysql】关联查询_子查询_排序分组优化
1. 关联查询优化 1.1 left join 结论: ①在优化关联查询时,只有在被驱动表上建立索引才有效! ②left join 时,左侧的为驱动表,右侧为被驱动表! 1.2 inner join ...
- 学校acm比赛题
这道题 用位运算必然简单 但是苦逼的是自己不熟练 那就 用本办法 输入一个十进制数 转换成二进制翻转 去掉高位的零 然后再转化为十进制 输出! 1 #include<stdio.h> ...
- BeanUtils低依赖属性拷贝测试(一)
javabean package entity; import java.util.Date; /** * 一个测试用: * student,javaBean * @author mzy * 一个标准 ...
- IPython中也要保持优雅(DRY原则)
What is IPython? IPython provides a rich architecture for interactive computing with: A powerful int ...