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
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源
安装
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源安装复制代码
检查
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
查看
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%复制代码
登录
MySQL
通过命令 mysql -uroot -p
步骤五:修改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错误
官方文档后发现有以下三种密码策略:
Policy | Tests Performed |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; 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%'; 复制代码
方式二:
修改my.cnf
,重新启动mysql服务器以使新设置生效。
# 修改 my.cnf # vim /etc/my.cnf # 在 my.cnf 底部添加规则 ... plugin-load-add=validate_password.so validate-password=FORCE_PLUS_PERMANENT复制代码
第三步:成功修改密码。
# 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;复制代码
# 2.进入mysql数据库:use mysql; # mysql> use mysql;复制代码
# 3.查看mysql数据库中所有的表 # mysql> show tables;复制代码
# 4.查看user表中的数据 # mysql> select Host, User from user;复制代码
# 5.修改user表中的Host # mysql> update user set Host='%' where User='root';复制代码
# 6.最后刷新一下 # mysql> flush privileges;复制代码
作者:小a冲啊
链接:https://juejin.cn/post/7029577342011834376