Linux(CentOS7)使用 RPM 安装 mysql8.0
阅读目录
1.安装准备工作
查看linux相关命令
下载mysql RPM
2.开始安装
上传rpm
安装mysql
启动Mysql服务
连接数据库
启用远程连接
—、安装准备工作
1.查看linux版本,用于下载对应的mysql
【查看linux 版本信息】
cat /proc/version
可以看出该版本是X86-64,Red Hat所以应该选择Red Hat对应的X86-64的mysql版本
2.检查是否安装过Mysql
【检查是否安装mysql】
rpm -qa | grep mysql 若安装过,会输出相关包
【若安装过,则删除相关文件】
rpm -e --nodeps 包名(此处包名是上面命令查出来的名字)
3.下载Mysql
官网地址
官网Mysql二、开始安装
1.传输文件到/user/local/java/目录下面
使用 xFtp6 将下载好的文件从 windows 系统传到 Linux 系统(可选操作,你可以直接在 Linux 上下载)。
或安装rz rz命令进行上传文件
【安装rzsz】
yum -y install lrzsz
使用上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可。
【rz上传】
使用上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可。
【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
(2) 查看是否安装成功
【方式一:】
mysql 安装成功后,会自动建立 mysql 用户、用户组。
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
【方式二:】
mysqladmin --version
(3) 安装成功之后,就可以启动服务
但是建议先设置数据库编码及数据库名大小写敏感问题等。
【数据库名大小写敏感】
vim /etc/my.cnf
到此,就可以启动启动服务了。如果先启动服务,回来再设置的话,需要先删除初始化的数据,才能生效。
如果你不在意数据的话直接删除数据
停止MySQL
systemctl stop mysqld
删除 MySQL的数据(恢复到初始化之前)
rm -rf /var/lib/mysql
3、启动 mysql 服务
(1)Step1:查看当前服务是否启动
【方式一:】
ps -ef | grep mysql
【方式二:】
systemctl stauts mysqld
(2)Step2: 启动、停止 mysql 服务
【启动 mysql 服务:】
systemctl start mysqld
【关闭 mysql 服务 】
systemctl stop mysqld
4、连接 mysql
(1)解决方式一:查看初始密码,并用之登陆。
【解决方式一:(查看初始密码,用于登陆)】
cat /var/log/mysqld.log | grep password
(2)解决方式二:
【解决方式二:(编辑 my.cnf 文件,用于跳过密码)】
编辑配置文件(my.cnf),找到 [mysqld] ,在下面添加
skip-grant-tables # 用于跳过密码登陆
```bash
vi /etc/my.cnf
重启服务:
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';
![在这里插入图片描述](
(2)设置完初始密码后,需要编辑 /etc/my.cnf,将之前添加的 skip-grant-tables 去掉。
重启服务。
[root@localhost /]# vim /etc/my.cnf
[root@localhost /]# systemctl restart mysqld
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
如果配置了%还不能远程连接
执行下列命令看看防火墙关闭没有
firewall-cmd --state
如果没关执行下列命令
关闭防火墙
service firewalld stop
永久关闭
systemctl disable firewalld.service
如果远程连接遇到如下报错:
Unable to load authentication plugin ‘caching_sha2_password’.
原因: 是因为mysql8使用的是caching_sha2_password加密规则。
解决方法:
(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; #刷新权限