首页 技术 正文
技术 2022年11月17日
0 收藏 894 点赞 2,887 浏览 2148 个字

在 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 身份登陆

  1. 首先使用:wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 下载mysql的官方源(可能需要先安装 wget )

  2. 之后使用:rpm -ivh mysql57-community-release-el7-9.noarch.rpm 安装源

  3. 使用 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 目录后即可。

  4. 使用 cat /var/log/mysqld.log | grep password 查看临时密码,登陆后用 SET PASSWORD FOR root@localhost = password(‘<PASSWORD>’); 修改密码。如果提示密码不合要求,用 SET global validate_password_policy=LOW; 降低密码要求 。

  5. 设置允许 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”,自然搞得一团糟而且登陆不上去。

  6. 启动 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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,494
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295