通过RPM方式安装,升级,卸载,以及配置使用MySQL
一、下载
MySQL是一种开源的关系数据库管理系统,被广泛应用于各种业务应用中。本文将讲解如何下载和安装MySQL的rpm安装包。
下载rmp安装包有多种方式:
1、可以到MySQL的官网(https://dev.mysql.com/downloads/mysql/)进行下载。在下载页面中选择适合的版本和操作系统,本文以CentOS 7为例,选择Community Server版本。最后将rpm文件上传到服务器即可。
2、还可以使用wget命令,新的centos7应该是没有wget工具的,需要使用yum安装一下wget,其实也可以用yum直接安装mysql 的,不用多此一举,看自己吧,有兴趣可以用yum试试,反正过程都差不多。
yum -y install wget
-y表示安装过程中遇到提问全选yes,等待安装完成就可以啦!
wget -P /download https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
不加参数则默认下载到当前用户跟目录, 加上-P参数则下载到指定目录
二、安装
下载完成后,使用以下命令进行安装:
(1)打开mysql80-community-release-el7-3.noarch.rpm文件
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
(2)打开文件后,使用以下命令安装MySQL服务
sudo yum install mysql-server --nogpgcheck
(3)如果遇到以下错误,可以在MySQL官网 (https://dev.mysql.com/doc/refman/8.0/en/checking-gpg-signature.html) 找到公钥
- 复制下面的公钥
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: pgp.mit.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
sTSKHe+QnnnoFmu4gnmDU31i
=Xqbo
-----END PGP PUBLIC KEY BLOCK-----
- 在服务器某个文件夹下,这里依旧在/download目录下输入以下命令。然后将复制的内容粘贴上去,保存即可
vi mysql_pubkey.asc
- 执行官网上的命令
gpg --import mysql_pubkey.asc
gpg --recv-keys 3A79BD29
我没有用rpm的命令,好像导不进去
(4)再执行一遍安装命令
sudo yum install mysql-server --nogpgcheck
(5)安装完成以后启动MySQL服务
systemctl start mysqld
(6)查看MySQL服务是否启动成功
systemctl status mysqld
(7)设置开机自启动(根据自己需求来即可)
systemctl enable mysqld
三、登录
(1)通过日志文件查看临时密码
cat /var/log/mysqld.log | grep password
(2)登录,执行以下命令输入刚刚查看到的临时密码
mysql -uroot -p
四、修改密码
通过生成的临时密码登录后操作mysql时会报如下错误,需要修改密码,不然就会疯狂提示:
You must reset your password using ALTER USER statement before executing this statement
(1)执行修改密码的SQL语句
alter user 'root'@'localhost' identified by '123';
# 或
set password for 'root'@'localhost'=password('123');
**注意:**旧版本的mysql与新版也就是8.0之后的版本修改密码的变量和规范不一样,而且新版本的mysql的修改的密码如果不符合MySQL密码规范,会触发一个报错信息:
Your password does not satisfy the current policy requirements
先修改一个满足的密码 (如:Root_12root)。如果密码设置的复杂也就可以不用降低密码的验证规则。
(2)调整密码验证规则如下:
4.1、MySQL 8.0
set global validate_password.policy=0;
set global validate_password.length=1;
4.2、MySQL 5.7
set global validate_password_policy=0;
set global validate_password_length=1;
(3)再次执行修改密码的SQL语句
alter user 'root'@'localhost' identified by 'mysql';
# 或
set password for 'root'@'localhost'=password('mysql');
五、开启远程访问权限
(1)选择 mysql 数据库,因为 mysql 数据库中存储了用户信息的 user 表
use mysql;
(2)在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问
select host, user, authentication_string, plugin from user;
(3)设置远程访问并授权 root 用户的所有权限
GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程,FLUSH PRIVILEGES 表示刷新
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
再次执行步骤(2),你会发现 root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了
哦不!
注意: 如果你的服务器是云服务器还要在入站规则哪里添加放开3306的端口配置,如果是私人的云服务器,建议把端口改成其他的,不要用3306,我的就被小黑子光顾过,直接把我的数据库表全部清了,只留下一个邮箱,然后要我付好多比特币来着,才能恢复数据。
云服务器的添加方式位置都不一样,这里就不例举了。
如果是其他服务器或者虚拟机搭建的就简单了。只需要关闭防火墙或者开放端口就可以了。
六、关闭防火墙
(1)关闭防火墙
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
(2)或者开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
防火墙重载
firewall-cmd --reload
查看3306状态
firewall-cmd --zone=public --query-port=3306/tcp
应该是yes,说明端口已经打开,去navicat测试连接,输入ip和新的Mysql账户密码,即可成功!
七、升级
这条命令会自动安装MySQL,并把所有的文件部署到指定的目录中。如果你需要升级MySQL,可以使用以下命令打开RPM文件:
sudo rpm -Uvh -ivh mysql80-community-release-el7-3.noarch.rpm
八、卸载
最后,如果你想卸载MySQL,可以使用以下命令在终端中打开RPM文件,输入以下命令:
sudo rpm -e mysql-server
这条命令会卸载MySQL,同时删除与之相关的所有文件。