linux yum安装mysql

本文详细介绍在CentOS系统上安装、配置及管理MySQL数据库的过程,包括检查与卸载现有数据库、安装MySQL社区版、解决常见安装错误、设置密码策略等关键步骤。

1. 检查系统中是否已安装 MySQL。

在这里插入图片描述
返回空值的话,就说明没有安装 MySQL 。
如果有,用rpm -e --nodeps卸载

注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。

2. 查看已安装的 Mariadb 数据库版本。

rpm -qa|grep -i mariadb
在这里插入图片描述

3.卸载已安装的 Mariadb 数据库

rpm -qa|grep mariadb|xargs rpm -e --nodeps

4.下载安装包文件。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm (5.7)
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm (8.0)
在这里插入图片描述

5.安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm
在这里插入图片描述
安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。
在这里插入图片描述
执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。
在这里插入图片描述

6.安装mysql。

yum install mysql-server 安装
如果出现

错误:软件包:mysql-community-client-plugins-8.0.34-1.el8.x86_64 (mysql80-community)
          需要:libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
原因
旧版本MySQL卸载不干净,Yum缓存没有清空
解决办法
移除所有mysql开头的包
yum list installed | grep mysql
yum remove mysql-community-common
清除yum缓存
yum clean all
删除mysql遗留文件(请做此动作前备份数据)
rm -R /var/cache/yum/x86_64/7/mysql*

如果出现
解决源 “MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。
sudo yum install mysql-server --nogpgcheck

yum remove mysql-server 卸载
在这里插入图片描述

7.检查mysql是否安装成功。

rpm -qa | grep mysql
在这里插入图片描述

8.启动 mysql 服务 。

systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动

mysql常用文件路径:

/etc/my.cnf   这是mysql的主配置文件

/var/lib/mysql   mysql数据库的数据库文件存放位置

/var/logs/mysqld.log  数据库的日志输出存放位置
查看临时密码
grep ‘password’ /var/log/mysqld.log |head -n 1

9.设置密码 。

mysql -u root
mysql> use mysql;
mysql7之后authentication_string代替了password,所以这种方法不可行update user set password=PASSWORD("这里输入root用户密码") where user='root';

使用这个
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

flush privileges;刷新

开启防火墙firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
查看用户

mysql>use mysql;
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| user01           | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

如果是mysql8.0
进入之后选择mysql库,用户信息都存在这个库的user表中

use mysql;
select host, user, authentication_string, plugin from user;
update user set host='%' where user = 'root';//设置远程
flush privileges;

设置mysql8密码策略

show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |

得到这样的结果,密码长度要求8位,验证策略是MEDIUM,就是长度,数字,大小写,特殊字符都得验证,因此出现如此所示的错误,就很正常了。我们可以修改validate_password_policy=0,这样就是只检查长度。另外我们觉着8位太长了,我们可以改为4。这样可以设置root密码为root。

经过如下修改,再次验证。

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值