linux下安装mysql

本文详细介绍了在CentOS8系统上下载并安装MySQL8.0.25的步骤,包括检查权限、安装依赖、初始化服务、修改密码以及配置远程连接,特别关注了加密方式的更新和处理方法。
摘要由CSDN通过智能技术生成

mysql安装包下载

Linux的版本为 :centos8

mysql下载地址:MySQL :: Download  MySQL Community Server (Archived Versions)

  解压,上传如下文件到 linux 系统

MySQL的安装

检查/tmp临时目录权限

mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执行 :

chmod -R 777 /tmp

安装前,检查依赖

#检查libaio包是否存在
#不存在的话:yum install libaio
rpm -qa|grep libaio

#检查net-tools包是否存在
rpm -qa|grep net-tools

MySQL安装过程

在上传文件的目录下,按顺序执行如下命令:

rpm -ivh mysql-community-common-8.0.25-1.el8.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.25-1.el8.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.25-1.el8.x86_64.rpm

rpm -ivh mysql-community-client-8.0.25-1.el8.x86_64.rpm

rpm -ivh mysql-community-server-8.0.25-1.el8.x86_64.rpm

检查是否安装成功

服务的初始化

为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:

mysqld --initialize --user=mysql

说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份。

查看密码:cat /var/log/mysqld.log

启动mysql

mysqld 这个可执行文件就代表着 mysql 服务器程序,运行这个可执行文件就可以直接启动一个
服务器进程。

# 启动
systemctl start mysqld
# 关闭
systemctl stop mysqld
# 重启
systemctl restart mysqld
# 查看状态
systemctl status mysqld

查看进程:ps -ef | grep -i mysql

查看MySQL服务是否自启动

systemctl list-unit-files|grep mysqld.service

默认开启

如果不是enabled可以运行如下命令设置自启动:systemctl enable mysqld.service
如果希望不进行自启动,运行如下命令设置:systemctl disable mysqld.service

MySQL登录

mysql登录

通过 mysql -hlocalhost -P3306 -uroot -p 进行登录,在Enter password:录入初始化密码

 修改密码

因为初始化密码默认是过期的,所以查看数据库会报错

修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY ' 新密码 ';

5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。

远程连接

云服务器在安全组里开放端口,本地虚拟机关闭防火墙。

用sql yog或navicat连接数据库出现如下错误,这是由于mysql配置了不支持远程连接引起的。

Linux下修改配置

测试:

use mysql;
select Host,User from user;

可以看到root用户的当前主机配置信息为localhost。

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。

update user set host = '%' where user ='root';

Host设置了“%”后,需要执行 flush privileges; 使配置立即生效便可以允许远程访问。

再次远程连接mysql出现如下错误:

1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL Client 

错误原因是加密方式的问题:

mysql8版本换了新的身份验证插件(caching_sha2_password)

查看加密方式:select user, plugin from user where user= 'root'; 

原来的身份验证插件为(mysql_native_password),只需要更改一下加密方式即可解决

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

重新远程连接mysql,成功!

  • 32
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值