Linux上安装mysql
本人当前环境
- 一台阿里云的服务器,CentOS 8.2 64位
- 需要安装mysql5.7版本
下载前的检查和删除
- 前请提醒:如果是一台新服务器或者虚拟机 ,未安装过数据库可以忽略这一步,以下操作是对已经安装了mysql数据库,的删除操作(可以是使用 rpm -qa | grep mysql 命令检查以下是否安装了mysql数据库)
1.停止数据库运行
systemctl stop mysqld # 停止数据运行如果上面的的报错,请输入下面的指令find / -name mysql.server# 从当前目录开始查找所有名称为mysql.server找到后
进入init.d 文件夹cd /etc/rc.d/init.d输入./mysql.server stop #停止数据库运行如果出现报错 :./mysql.server: line 259: cd: /usr/local/mysql: No such file or directoryStarting MySQLCouldn't find MySQL server (/usr/local/mysql/[FAILED]ld_safe))那我也无能为力,如果有人遇到并解决了,希望和我说一声,我做一个记录。
2.删除已存在的数据库
rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps #删除已有的mysql\|mariadb可以使用 rpm -qa | grep mysql # 检查是否存在mysqlrpm -qa | grep mariadb # 检查是否存在mariadb
拓展
拓展rpm知识:-e 卸载rpm包 -q 查询已已安装的软件信息 -i 安装rpm包 -u 升级rpm包--replacepkgs 重新安装rpm包 --justdb 升级数据库,不修改文件系统--percent 在软件包安装时输出百分比 --help 帮助--version 显示版本信息 -c 显示所有配置文件 -d 显示所有文档文件-h 显示安装进度 -l 列出软件包中的文件 -a 显示出文件状态-p 查询/校验一个软件包文件 -v 显示详细的处理信息 --dump 显示基本文件信息--nomd5 不验证文件的md5支持 --nofiles 不验证软件包中的文件 --nodeps 不验证软件包的依赖关系--whatrequire 查询/验证需要一个依赖性的软件包--whatprovides 查询/验证提供一个依赖性的软件包安装参数--force即使覆盖属于其它包的文件也强制安装--nodeps如果该RPM包的安装依赖其它包,即使其它包没装,也强制安装grep知识:-n 显示行号。-i 不区分大小写。-c 统计匹配行,命中查找字符串的总行数。-v 显示不包含匹配文本的所有行。-r 递归处理。-E 使用正则表达式作为匹配进行查找(注:-e 没有-E 支持的完整)。–include 指定匹配的文件类型。–exclude 过滤不需要匹配的文件类型。xargs知识:作用是以空格或者换行作为分隔符,把标准输入转化成多个命令行参数,在与管道命令结合使用时,就能体现出 xargs 的作用
开始下载
- 前请提醒:这里使用的yun安装如果没有需要去下载,推荐文章(https://blog.csdn.net/xTand/article/details/105710793)
1.在home目录下创建一个文件夹
cd home # 这里是在 根目录 操作 如果不在 请先到根目录 cd \mkdir install_packet # 创建文件夹 install_packet(这是一个名称,可以随意)cd install_packet # 进入install_packet 文件夹
2.开始安装
下载mysql5.7 rpm源和安装下载好的rpm包
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm # 下载mysql5.7 rpm源rpm -ivh mysql57-community-release-el7-8.noarch.rpm # 安装以下载好的rpm源
如果上面报错 :需要检查一下是否安装了 wget 和 rpm。如果没有请前往安装
安装成功/etc/yum.repos.d/
目录下增加了以下四个文件(ls /etc/yum.repos.d/)
安装mysql
yum install -y mysql-server安装完成输入mysqld -V # 查看当前版本
如果是使用阿里云服务器安装报错:
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
执行:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022再次进行服务安装:yum -y install mysql-server
运行mysql
service mysqld start# 启动mysql
取得mysql初始化随机密码
grep "password" /var/log/mysqld.log # 获取初始化密码 ppnki_%:C5?j (这个是随机的各不相同)ppnki_%:C5?j
登入mysql + 修改密码
mysql -u root -p # 输入密码直接进入ALTER USER USER() IDENTIFIED BY '你的新密码'; # 修改密码(如果报错则按下面修改密码的方式)ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; # 设置密码永不过期如果安装的为8+版本请使用这条语句:ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密码为rootflush privileges; # 刷新MySQL的系统权限相关表
如果报错:
service mysqld stop # 停止mysql运行进入my.cnf vim etc/my.cnf# 进入my.cnf文件 (这里是在根目录操作)添加: skip-grant-tables # 跳过数据库权限验证然后保存退出就行。
修改数据库的密码(这个是上面了错才执行下面的命令)
- 进入mysql数据库前,一定要先启动 ---- service mysqld start
如果是设置了 skip-grant-tables 则直接 mysql -u root -p 然后直接回车进入进行好。flush privileges; # 刷新一下权限grant all on cactidb.* to dbuser@'localhost' identified by '你的密码'; # 修改密码成功后在使用 flush privileges; # 刷新一下权限exit; 退出进入 etc/my.cnf 删除之前添加的 skip-grant-tables , 然后service mysqld stop # 停止运行mysqlservice mysqld start # 启动mysql 然后在登入一遍mysql即可。
上面查找都没有问题 就已经安装成功mysql
开始远程连接
1.连接MySQL
mysql -u root -p 密码
2.查看MySQL当前远程访问权限配置
use mysql select User,authentication_string,Host from user;
通过命令可以看到当前只有一个用户root,并且Host为localhost,即只能本地访问权限
3.开启远程访问权限
开启远程访问权限的方式,主要包括两种:改表法和授权法
- 方式一:改表法
顾名思义,该方法就是直接修改更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为"%"
update user set host='%' where user='root';
- 方式二:授权法
通过GRANT命令可以授予主机远程访问权限
--赋予任何主机访问权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;--允许指定主机(IP地址)访问权限:GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;
通过GRANT命令赋权后,需要通过FLUSH PRIVILEGES
刷新权限表使修改生效:
FLUSH PRIVILEGES;
4.再次查看MySQL远程访问权限配置
select User,authentication_string,Host from user;
注意:
出于安全性考虑,尤其是正式环境下
1.不推荐直接给root开启远程访问权限。
本案例仅以root用户作为例子做开启远程访问权限的配置,此为演示环境!
2.建议做权限细分和限制
正式环境中,推荐通过创建Mysql用户并给对应的用户赋权的形式来开放远程服务权限,并指定IP地址,赋权时根据用户需求,在GRANT命令中只开放slect、update等权限,做到权限粒度最小化。
文章使用:
参考文章
MySQL开启远程访问权限-阿里云开发者社区 (aliyun.com)
Linux安装MySql5.7及配置(yum安装) - 小老弟 - 博客园 (cnblogs.com)
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系