阅读 101

CentOS安装MySQL(centos安装mysql数据库)

一、环境版本介绍

# MySQL 版本查询
# mysql --version 
  mysql  Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL 

# Centos 版本查询
# cat /etc/redhat-release 
  CentOS Linux release 7.6.1810 (Core) 
复制代码
  1. 提示1

MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

二、安装 MySQL

安装前,先检查。我们可以检测系统是否自带安装 MySQL

# rpm -qa | grep mysql
  mysql80-community-release-el7-3.noarch
  mysql-community-libs-8.0.27-1.el7.x86_64
  mysql-community-client-8.0.27-1.el7.x86_64
  mysql-community-client-plugins-8.0.27-1.el7.x86_64
  mysql-community-server-8.0.27-1.el7.x86_64
  mysql-community-common-8.0.27-1.el7.x86_64复制代码

如果你系统有安装,那可以选择进行卸载:

# rpm -e mysql  // 普通删除模式
# rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除复制代码

开始安装MySQL,安装步骤如下

  • 步骤一:安装MySQL源

  • 步骤二:安装MySQL

  • 步骤三:启动MySQL

  • 步骤四:登录MySQL

  • 步骤五:修改MySQL密码

  • 步骤六:远程登录MySQL

步骤一:安装MySQL源

  1. 安装MySQL源

CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包。手动下载(或查看)地址:dev.mysql.com/downloads/r…

命令行下载

# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm # MySQL源安装复制代码
  1. 检查MySQL源是否安装成功

执行成功后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo及 mysql-community-source.repo

成功后,可以通过yum repolist相关命令可以看到mysql相关资源

# yum repolist enabled | grep "mysql.*-community.*"
  !mysql-connectors-community/x86_64  MySQL Connectors Community               221
  !mysql-tools-community/x86_64       MySQL Tools Community                    135
  !mysql80-community/x86_64           MySQL 8.0 Community Server               301复制代码

步骤二:安装MySQL社区版 服务器

# 安装 MySQL社区版 服务器
# sudo yum install mysql-community-server复制代码

该命令会安装MySQL服务器 (mysql-community-server) 及其所需的依赖、相关组件,包括mysql-community-client、mysql-community-common、mysql-community-libs等。

# 成功后,查看MySQL版本
# mysql --version
  mysql  Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)复制代码

步骤三:启动MySQL

# 启动 MySQL
  sudo systemctl start mysqld.service
  
# 停止 MySQL
  sudo systemctl stop mysqld.service
  
# 重启 MySQL
  sudo systemctl restart mysqld.service
  
# 查询 MySQL 状态
  sudo systemctl status mysqld.service复制代码

步骤四:登录MySQL

  1. 查看 MySQL 初始密码

MySQL第一次启动后会创建超级管理员账号root@localhost,为root用户随机生成了一个密码。初始密码存储在日志文件/var/log/mysqld.log中:

# 查看 ```MySQL``` 初始密码
# sudo grep 'temporary password' /var/log/mysqld.log
  2021-11-10T05:44:59.609270Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <qCaqOt6ejf%复制代码

WX20211112-111558@2x.png

  1. 登录 MySQL

通过命令 mysql -uroot -p

WX20211112-112203@2x.png

步骤五:修改MySQL密码

我修改MySQL密码的过程也很c淡。
初次登录成功后,进行正常操作会受限,提示你必须修改密码后才能进行操作。

# mysql> show databases;
  ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.复制代码

那我就修改,然后我就去修改初始密码,提示不让修改密码。。。

# mysql> SET PASSWORD = PASSWORD('123456'); 
  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements复制代码

尼玛,

原因是:MySQL默认安装了密码安全检查插件validate_password,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

官方文档后发现有以下三种密码策略:

PolicyTests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

第一步:按规则修改密码(注意:要设置按照规则的复杂密码)。

alter user 'root'@'localhost' identified by '<qCbqOu6ejf%';复制代码

第二步:那就修改密码策略(目的是设置任何规则的密码)。

  • 方式一:

# 修改密码策略
# mysql> set global validate_password_policy=0;
# mysql> set global validate_password_length=1;复制代码

查看修改后的密码策略:

# mysql> show variables like 'validate_password%'; 
复制代码

WX20211112-145311@2x.png

  • 方式二:

修改my.cnf重新启动mysql服务器以使新设置生效。

# 修改 my.cnf
# vim /etc/my.cnf

# 在 my.cnf 底部添加规则
...
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT复制代码

WX20211112-145234@2x.png

第三步:成功修改密码。

# mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  Query OK, 0 rows affected (0.00 sec)复制代码

步骤六:远程登录MySQL

# 允许root远程访问
# mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
# mysql> FLUSH PRIVILEGES;复制代码

连接数据库出现的问题:

  • 问题1:navicat连接数据库报错

# navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server复制代码

解决方式:

# 1.查看当前所有数据库
# mysql> show databases;复制代码

WX20211112-145143@2x.png

# 2.进入mysql数据库:use mysql;
# mysql> use mysql;复制代码

WX20211112-144921@2x.png

# 3.查看mysql数据库中所有的表
# mysql> show tables;复制代码
# 4.查看user表中的数据
# mysql> select Host, User from user;复制代码
# 5.修改user表中的Host
# mysql> update user set Host='%' where User='root';复制代码

840FBAFF-560E-4C37-84C8-A9E058FE2C8A.png

# 6.最后刷新一下
# mysql> flush privileges;复制代码

WX20211112-144523@2x.png


作者:小a冲啊
链接:https://juejin.cn/post/7029577342011834376


文章分类
代码人生
文章标签
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 gxwowoo@163.com 举报,一经查实,本站将立刻删除。
相关推荐