阿里云Centos服务器搭建mysql8.0.25

一、下载和解压

官网下载:
点击直接下载mysql8.0.25,不过下载有的慢,可能被限速了
下完之后,你会得到一个文件名为mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz,这是一个二次压缩的mysql,需要进行xz -d xxx解压成 xxx.tar 再用tar xvf xxx解压就完成一半了,我把它解压到/usr/local/mysql-8.0.25
解压完之后:
mysql目录
如果出现

xz: mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz: Compressed data is corrupt

一般是压缩包有问题,重新下载吧
废话不多说

二、初始化mysql

第一步:

新建空文件夹data

mysql8.0.25目录下

mkdir ./data

创建用户及用户组

groupadd mysql
useradd -g mysql mysql

命令解释:
useradd:添加用户,比如root用户
-g mysql:-g顾名思义group的首字母,即添加的用户属于mysql用户组,mysql是上一步创建的用户组
mysql:添加的用户名

授权

chown -R mysql.mysql /usr/local/mysql-8.0.25/

命令解释:

-R:处理指定目录及其子目录下所有文件
mysql.mysql:用户组.用户

第二步:

初始化数据库

 pwd
/usr/local/mysql-8.0.25

在该目录下执行

./bin/mysqld --user=mysql --basedir=/usr/local/mysql-8.0.25/ --datadir=/usr/local/mysql-8.0.25/data/ --initialize

执行结果

2021-07-23T18:32:47.361968Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.25/bin/mysqld (mysqld 8.0.25) initializing of server in progress as process 2301
2021-07-23T18:32:47.373835Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-07-23T18:32:50.746203Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-07-23T18:32:52.712979Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: n9RxKB3rtX%1

最后一行的字符串为临时密码:n9RxKB3rtX%1
如果初始化出现缺少依赖库,就按照提示用yum安装依赖库即可

./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

在linux上安装mysql的时候出现错误,意思就是缺少libaio这个软件。

  • ubuntu版本:
sudo apt-get install libaio-dev
  • CentOS或者redcat版本
yum install -y libaio

第三步:

配置文件

/etc/vim my.cnf

# my.cnf

[mysqld]
basedir=/usr/local/mysql-8.0.25
datadir=/usr/local/mysql-8.0.25/data
socket=/tmp/mysql.sock
character-set-server=utf8

建立mysql服务

/usr/local/mysql-8.0.25/support-files目录下

cp -a ./mysql.server /etc/init.d/mysql

命令解释:
cp -a:归档复制,常用于备份
mysql.server复制到/etc/init.d/目录下并更名为mysql

chmod +x /etc/init.d/mysql 
chkconfig --add mysql 

命令解释:
chmod +x:将普通文件变为可执行文件【变绿】
chmod -x:将可执行文件改成普通文件

查看/etc/init.d/mysql文件
可以发现有该注释 #chkconfig: 2345 64 36
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动

chkconfig --list mysql:检查服务是否生效

三、启动和登录数据库

启动

service mysql start

查看状态

service mysql status

登录

mysql -uroot -p
-bash: mysql: command not found

原因:
mysql命令不是全局,需要到msql-8.0.25/bin/下的mysql使用,或者使用软连接将需要全局命令的命令连接到/usr/bin下,因为在该bin下,命令是具有全局性的

设置软连接

ln -s /usr/local/mysql-8.0.25/bin/mysql /usr/bin

再次登录成功!

修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

修改配置文件

# my.cnf

# MySQL 配置文件,
#
# # 数据库目录 /data/mysql
 [client]
 port=3306
 # mysql socket 文件存放地址
 socket=/tmp/mysql.sock
 # 默认字符集
 default-character-set=utf8

 [mysqld]
 server-id=1
 # 端口
 port=3306
 # 运行用户
 user=mysql
 # 最大连接
 max_connections=200
 socket=/tmp/mysql.sock
 # mysql 安装目录(解压后文件的目录)
 basedir=/usr/local/mysql-8.0.25
 # 数据目录(这里放在我们新建的 /data/mysql 下)
 datadir=/data/mysql_data/data
 pid-file=/data/mysql_data/data/mysql.pid
 init-connect='SET NAMES utf8'
 character-set-server=utf8
 # 数据库引擎
 default-storage-engine=INNODB
 slow_query_log_file=/data/mysql_data/log/mysql-slow.log
 # 远程连接访问,低版navicate需要该注解,15-16 navicate请忽视
 default_authentication_plugin=mysql_native_password

 # 跳过验证密码
 #skip-grant-tables

 [mysqld_safe]
 log_error=/data/mysql_data/log/mysql-error.log

 [mysqldump]
 quick
 max_allowed_packet=16M
 EOF

为了考虑数据库安全性和方便管理,对数据文件进行迁移
/usr/local/mysql-8.0.25/data迁移到/data/mysql_data/data
步骤:
移动data目录及子目录所有文件

mv /usr/local/mysql-8.0.25/data /data/mysql_data/data

进入mysql_data目录

cd /data/mysql_data

在/data/mysql_data/log/目录下新建错误日志输出文件

mkdir log
touch log/mysql-error.log

结果如图:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
上图中,除了data是迁移过来的,其他都要手动创建,全都创建完毕后,再更改目录用户权限,即图中红色方框用户组属关系

chown -R  mysql.mysql /data/mysql_data

注意:
上面那三个图中目录的权限更重要,涉及到mysqld_save免密登录时权限问题,下面详细讲

四、设置允许远程访问

登录myql
新建用户root@%作为其他远程访问的用户

create user root@'%' identified by 'root';

命令解释:
root:字段user
@作为分隔符
%:字段host
格式必须是user@'%' (亲测) 或者‘user’@‘%’
千万注意不能是’root@%'相当于用户名为root@%
图片演示:
在这里插入图片描述
#8.0密码规则

caching_sha2_password

#5.7密码规则

mysql_native_password

客户端navicate15之前的版本可能不支持mysql8.0的新加密特性,但很幸运的是navicate目前已经到了navicate 16
如果要让mysql有较好的兼容性——其他低配的navicate依旧可以链接mysql8.0,可以保留 default_authentication_plugin=mysql_native_password,代价就是降低安全性
建议尽量使用caching_sha2_password,这是mysql官方给的建议
在这里插入图片描述

修改远程用户的加密规则(plugin字段)并更新密码

  • mysql_native_password 弱加密
mysql> alter USER root@'%' IDENTIFIED WITH mysql_native_password by 'root';
  • caching_sha2_password 强加密
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'root';  

授予远程root用户所有权限

mysql> grant all privileges on *.* to root@'%' with grant option;

刷新权限

mysql> flush privileges;

使用safe模式进行重启

./mysqld_safe --skip-grant-tables

如果要后台启动,后面跟上 &
敲完之后回车,为啥服务没有进后台?
再一次直接回车键,跳出
ps -ef |grep myqsl查看服务,发现mysql还在
实在不放心,继续mysql -uroot -p直接回车
有密码要登录,不管,再一次回车
咦,登录上去了!
注意:
上面safe模式得以验证,当然这是通过启动safe服务才能不用输入密码,下次正常登录依旧需要密码
或者开启另一会话窗口登录, mysql -uroot -p 直接登录
如果第一步就失败了,而且报错如下:

2021-10-10T11:39:14.058864Z mysqld_safe Logging to '/data/mysql_data/log/mysql-error.log'.
2021-10-10T11:39:14.090716Z mysqld_safe Starting mysqld daemon with databases from /data/mysql_data/data
2021-10-10T11:39:14.386028Z mysqld_safe mysqld from pid file /data/mysql_data/data/mysql.pid ended

那是你关联的mysql-error.log文件,mysqld_save对其没有读写权限,导致无法开启服务,为什么?
mysqld_save该文件已经被我们设置权限为mysql,mysql权限肯定低于root,所以要保证mysql-error.log的所属关系权限是mysqld_save能访问到的

五、其他安全规则

设置mysql用户为nologin模式

就是不允许让mysql使用shell方式登录

usermod -s /sbin/nologin mysql
su mysql
This account is currently not available.

配置文件读取顺序

/etc/my.cnf
basedir/my.cnf
datadir/my.cnf
–defaults-extra-file #在读取全局配置文件之后,读取用户配置文件 (~/.my.cnf)之前,读取extra指定的参数文件
~/.my.cnf
所以我们在 /etc下的配置文件 my.cnf 是第一个读取的文件,读到这个文件后就不会在读后面路径中的配置文件。

参考其他博客来整理本文其实是想只为帮助同路人少走一些没必要的弯路,有疑问欢迎在以下评论区留言,小弟会给大家第一时间回复!

小孩纸博客宗旨:欢迎评论!欢迎留言,有问题大家一起解决嘛!

参考资料:
百度维基、百度百科,
大佬博客:https://www.cnblogs.com/yunian139/p/11804965.html
参考其他
bee100:https://blog.csdn.net/bee100/article/details/83599417
东华果汁哥:https://blog.csdn.net/u013421629/article/details/119328870
魔有追求:https://www.cnblogs.com/mozq/p/11623918.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 1. 首先,需要下载MySQL 8..25的安装包,可以从MySQL官网下载。 2. 安装依赖库: ``` yum install -y libaio ``` 3. 解压安装包: ``` tar -zxvf mysql-8..25-linux-glibc2.12-x86_64.tar.gz ``` 4. 将解压后的文件夹移动到/usr/local目录下: ``` mv mysql-8..25-linux-glibc2.12-x86_64 /usr/local/mysql ``` 5. 创建MySQL用户和用户组: ``` groupadd mysql useradd -r -g mysql -s /bin/false mysql ``` 6. 修改MySQL文件夹的权限: ``` chown -R mysql:mysql /usr/local/mysql ``` 7. 初始化MySQL: ``` cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 8. 启动MySQL服务: ``` bin/mysqld_safe --user=mysql & ``` 9. 设置MySQL的root密码: ``` bin/mysql_secure_installation ``` 10. 登录MySQL: ``` mysql -u root -p ``` 11. 安装完成。 ### 回答2: CentOS 7是一款广泛应用的Linux操作系统,而MySQL 8.0.25是一个非常流行的关系型数据库管理系统,本文将介绍如何在CentOS 7上安装MySQL 8.0.25。 1.检查系统版本和更新 在开始安装MySQL之前,首先要检查CentOS操作系统版本和更新系统。可以通过以下命令来检查操作系统版本: $ cat /etc/os-release 接下来,执行下面的命令来更新系统: $ sudo yum update 2.添加MySQL Yum存储库 要安装MySQL 8.0.25,首先需要将MySQL Yum存储库添加到CentOS 7系统中。可以通过以下命令添加: $ sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 3.安装MySQL 8.0.25 要安装MySQL 8.0.25,可以执行以下命令: $ sudo yum install mysql-community-server 此命令将自动下载并安装MySQL 8.0.25的最新版本。安装过程可能需要几分钟时间,具体时间取决于您的系统配置。 4.启动MySQL服务并检查状态 在安装MySQL 8.0.25后,可以使用以下命令启动MySQL服务: $ sudo systemctl start mysqld 可以使用以下命令检查MySQL服务状态: $ sudo systemctl status mysqld 如果显示Active(running),则表示MySQL服务已成功启动。 5.设置MySQL管理员密码 默认情况下,MySQL 8.0.25不需要密码即可登录,为了保障安全,需要设置管理员密码。可以通过以下命令设置密码: $ sudo mysql_secure_installation 按照提示,输入并确认新密码。同时可以选择是否启用密码验证插件。 6.使用MySQL 现在,MySQL已经安装完成并设置了管理员密码,可以使用以下命令登录MySQL: $ mysql -u root -p 系统将提示您输入管理员密码。一旦成功登录MySQL,您就可以开始使用MySQL进行数据库管理和查询了。 总结 安装MySQL 8.0.25非常简单,只需要几个终端命令即可。通过这些命令可以启动和管理MySQL,并为其开启和设置管理员密码。一旦完成安装,即可开始使用MySQL 8.0.25进行数据库管理。 ### 回答3: CentOS 7是一个非常流行的Linux操作系统,它广泛应用于企业级应用程序和Web服务器。随着MySQL 8.0.25版本的发布,许多用户想了解如何在CentOS 7上安装最新版本的MySQL服务器。 以下是CentOS 7安装MySQL 8.0.25的步骤: 1. 安装必要的软件 在安装MySQL之前,我们需要确保系统上已安装以下软件包:wget,tar 可以使用以下命令安装这些软件包: sudo yum install wget tar 2.下载MySQL 8.0.25软件包 下载MySQL 8.0.25软件包到您的CentOS 7系统。可以通过以下命令从官方MySQL网站下载: wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz 3. 解压缩软件包 下载完成后,我们需要将安装程序解压到系统。使用tar命令解压缩文件: tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz 4. 移动MySQL目录 解压缩之后,我们需要将MySQL目录移动到系统中的适当位置。使用以下命令移动: sudo mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql 5. 设置MySQL用户和组 为MySQL设置一个新用户和组是一个好习惯。使用以下命令创建新用户和组: sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql 6. 更改MySQL目录的所有权 更改MySQL目录的所有权以确保新用户和组可以访问它。使用以下命令更改所有权: sudo chown -R mysql:mysql /usr/local/mysql 7. 初始化MySQL 在安装MySQL之前,我们需要进行初始化。使用以下命令初始化: sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql 8. 启动MySQL服务 MySQL已经安装并初始化,现在我们需要启动MySQL服务。使用以下命令启动服务: sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & 9. 更改MySQL root用户密码 MySQL安装完成后,建议更改root用户的默认密码。使用以下命令更改密码: sudo /usr/local/mysql/bin/mysqladmin -u root password NEWPASSWORD 10. 测试安装 完成所有步骤后,您可以测试MySQL是否已成功安装。使用以下命令登录到MySQL shell: mysql -u root -p 输入您设置的新密码,并检查是否已成功登录到MySQL shell。 这些是在CentOS 7上安装MySQL 8.0.25的基本步骤。这个过程可能会有点冗长和繁琐,但它确保了系统的完整性和安全性,让您能够使用最新的MySQL版本来管理您的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗝屁小孩纸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值