Linux(CentOS7)使用 RPM 安装 mysql8.0

阅读目录

1.安装准备工作
			查看linux相关命令
			下载mysql RPM
	2.开始安装
			上传rpm
			安装mysql
			启动Mysql服务
			连接数据库
			启用远程连接

—、安装准备工作
1.查看linux版本,用于下载对应的mysql

【查看linux 版本信息】
 cat /proc/version

centos8的samba的rpm下载 centos8安装rpm_php


可以看出该版本是X86-64,Red Hat所以应该选择Red Hat对应的X86-64的mysql版本

2.检查是否安装过Mysql

【检查是否安装mysql】
	rpm -qa | grep mysql	若安装过,会输出相关包
【若安装过,则删除相关文件】
	rpm -e --nodeps 包名(此处包名是上面命令查出来的名字)

centos8的samba的rpm下载 centos8安装rpm_java_02


3.下载Mysql

官网地址
官网Mysql

centos8的samba的rpm下载 centos8安装rpm_mysql_03

二、开始安装

1.传输文件到/user/local/java/目录下面


使用 xFtp6 将下载好的文件从 windows 系统传到 Linux 系统(可选操作,你可以直接在 Linux 上下载)。

centos8的samba的rpm下载 centos8安装rpm_java_04


或安装rz rz命令进行上传文件

【安装rzsz】
yum -y install lrzsz

使用上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可。

【rz上传】
使用上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可。

centos8的samba的rpm下载 centos8安装rpm_mysql_05

【sz下载】
下载文件,执行命令sz

2、RPM 安装 mysql

rpm -ivh 包名

【安装顺序:(包之间相互依赖,所以必须注意安装顺序)】
    先装 common
    再装 libs(确保 mariadb 已卸载,centos7 默认支持 mariadb,不支持 mysql,不卸载会出现冲突)
    再装 client
    最后装 server

   [root@localhost opt]# rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
   [root@localhost opt]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
   [root@localhost opt]# rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
   [root@localhost opt]# rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm 
   [root@localhost opt]# rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm

centos8的samba的rpm下载 centos8安装rpm_php_06


centos8的samba的rpm下载 centos8安装rpm_数据库_07

(2) 查看是否安装成功

【方式一:】
    mysql 安装成功后,会自动建立 mysql 用户、用户组。
    cat /etc/passwd | grep mysql
    cat /etc/group | grep mysql
    
【方式二:】
    mysqladmin --version

centos8的samba的rpm下载 centos8安装rpm_java_08


(3) 安装成功之后,就可以启动服务

但是建议先设置数据库编码及数据库名大小写敏感问题等。

【数据库名大小写敏感】
vim /etc/my.cnf

centos8的samba的rpm下载 centos8安装rpm_数据库_09


到此,就可以启动启动服务了。如果先启动服务,回来再设置的话,需要先删除初始化的数据,才能生效。

如果你不在意数据的话直接删除数据

停止MySQL
systemctl stop mysqld
删除 MySQL的数据(恢复到初始化之前)
rm -rf /var/lib/mysql

3、启动 mysql 服务
(1)Step1:查看当前服务是否启动

【方式一:】
    ps -ef | grep mysql
    
【方式二:】
    systemctl stauts mysqld

centos8的samba的rpm下载 centos8安装rpm_mysql_10

(2)Step2: 启动、停止 mysql 服务

【启动 mysql 服务:】
    systemctl start mysqld

【关闭 mysql 服务 】
    systemctl stop mysqld

4、连接 mysql
(1)解决方式一:查看初始密码,并用之登陆。

【解决方式一:(查看初始密码,用于登陆)】
    cat /var/log/mysqld.log | grep password

centos8的samba的rpm下载 centos8安装rpm_centos8的samba的rpm下载_11


(2)解决方式二:

【解决方式二:(编辑 my.cnf 文件,用于跳过密码)】
   编辑配置文件(my.cnf),找到 [mysqld] ,在下面添加 
        skip-grant-tables     # 用于跳过密码登陆
```bash
vi /etc/my.cnf

centos8的samba的rpm下载 centos8安装rpm_centos8的samba的rpm下载_12

重启服务:
service mysqld restart

登陆无需密码:
     进入mysql命令:mysql -uroot -p 
     回车,即可进入mysql
5、修改初始密码
  通过上面两种方法,可以进入 mysql,但是密码用的是初始密码,或者没有密码,这样肯定难以操作。需要自定义密码。
(1)设置登陆密码,并再次连接数据库。
```javascript
use mysql;
查看当前默认规则:
SHOW VARIABLES LIKE 'validate_password%';

修改校验密码策略等级:
set global validate_password.policy=LOW;

设置密码长度至少为 6
set global validate_password.length=4;

最后设置密码 123456:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

![在这里插入图片描述](

centos8的samba的rpm下载 centos8安装rpm_mysql_13


centos8的samba的rpm下载 centos8安装rpm_java_14

(2)设置完初始密码后,需要编辑 /etc/my.cnf,将之前添加的 skip-grant-tables 去掉。
  重启服务。

[root@localhost /]# vim /etc/my.cnf
[root@localhost /]# systemctl restart mysqld

centos8的samba的rpm下载 centos8安装rpm_数据库_15


6.远程连接数据库

(1)开启MySQL远程连接

连接服务器: mysql -u root -p

看当前所有数据库:show databases;

进入mysql数据库:use mysql;

# 查看用户信息
mysql> select host, user from user;
# 更新root信息
mysql> update user set host = '%' where user = 'root';
# 立即生效,重新授权
mysql> flush privileges; 
# 授权root用户可以远程登陆
mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.02 sec)
# 立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
#

注:将Host设置为‘%’表示任意IP都能连接MySQL,也可以将‘%’改为指定ip

centos8的samba的rpm下载 centos8安装rpm_centos8的samba的rpm下载_16


如果配置了%还不能远程连接

执行下列命令看看防火墙关闭没有

firewall-cmd --state

如果没关执行下列命令
关闭防火墙

service firewalld stop

永久关闭

systemctl disable firewalld.service

如果远程连接遇到如下报错:

Unable to load authentication plugin ‘caching_sha2_password’.

原因: 是因为mysql8使用的是caching_sha2_password加密规则。

centos8的samba的rpm下载 centos8安装rpm_php_17

解决方法:

(1)修改远程连接用户的加密规则。
解决:
mysql -uroot -ppassword #登录

use mysql; #选择数据库
# 远程连接请将'localhost'换成'%'

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户密码

FLUSH PRIVILEGES; #刷新权限

centos8的samba的rpm下载 centos8安装rpm_java_18


centos8的samba的rpm下载 centos8安装rpm_mysql_19