第二节:MySQL8.x压缩包的形式在Centos Stream上安装

一. 准备

    

 服务器:阿里云Centos Stream 9

   Mysql:mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz

   下载地址:https://dev.mysql.com/downloads/mysql/

 

 

二. 步骤

1. 下载安装包

   首先,你需要从MySQL的官方网站或其他可信源下载mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz这个安装包。

 

2. 解压安装包

 将下载的安装包解压到某个目录,比如/usr/local/。你可以使用以下命令:

tar -xvf mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz -C /usr/local/

 解压后,你会在/usr/local/目录下看到一个名为mysql-8.4.0-linux-glibc2.28-x86_64的文件夹。

 

3. 创建软连接

 为了方便管理和访问,你可以创建一个符号链接指向解压后的MySQL目录:

ln -s /usr/local/mysql-8.0.37-linux-glibc2.28-x86_64 /usr/local/mysql

 现在你可以通过/usr/local/mysql来访问MySQL的安装目录了

 

4. 创建mysql用户和组

groupadd mysql     # 添加1个名字为mysql的组名
useradd -r -g mysql -s /bin/false mysql  # #这里是创建一个mysql用户用于承载mysql服务,但是不需要登录权限。

 (useradd 指令中:第一个mysql代表组名, 第二个mysql代表用户名)

 创建一个名为 mysql 的系统用户,其主组为 mysql,并且不允许登录(因为登录shell被设置为 /bin/false)

  • -r: 创建一个系统用户。系统用户通常没有登录shell,并且用于运行系统服务或进程。
  • -g mysql: 将新用户的主组设置为 mysql。
  • -s /bin/false: 设置新用户的登录shell为 /bin/false。这意味着如果用户尝试登录,/bin/false 会立即退出,从而阻止用户登录。这常用于系统用户,因为系统用户通常不需要登录。

PS: 这里创建的mysql用户在后面的5和6中都会用到,这也会产生一个问题,比如后续用root用户(这里root是服务器登录的root,不是mysql层次的!!!)在服务器中创建了一个文件夹,必须改成mysql用户的权限,才能写入。

如下:如果指定错误日志的位置,必须配置权限,因为默认是 root创建的。(配置文件中指定的日志位置的话,需要执行下面的话)

mkdir -p /usr/local/mysql/log/
chown -R mysql:mysql /usr/local/mysql/log/
chmod -R 755 /usr/local/mysql/log/

 

5. 准备数据目录,并配置权限

 创建一个数据目录用于存放MySQL的数据库文件,并设置适当的权限:

sudo mkdir /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod 755 /usr/local/mysql/data

(chown指令:将 mysql 这个文件或目录的所有者更改为 mysql 用户,并将其组更改为 mysql组,第一个mysql代表用户名,第二个mysql代表组名)

(chmod指令:文件拥有者权限:可读可写可执行     同组者权限:可读可写    他人权限: 无)

 

6. 初始化数据库

使用mysqld工具初始化数据库:

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

注意:这个命令会生成一个临时密码,用于首次登录MySQL。请确保记下这个密码,稍后在登录时会用到。

 

7. 配置mysql服务--(以便使用9中的指令)

你可以使用systemd来配置MySQL作为服务运行。首先,创建一个systemd服务文件:

touch /etc/systemd/system/mysqld.service

然后,将以下内容粘贴到文件中:保存

[Unit]
Description=MySQL Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-abort
PrivateTmp=false

 

8. 创建配置文件

创建一个基本的MySQL配置文件(如果不存在)

touch /etc/my.cnf

然后,根据你的需求添加配置选项。至少,你应该设置basedirdatadir

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

#错误日志
#log-error=/usr/local/mysql/log/mysql_error.log

 

9 启动mysql服务

systemctl start mysqld

可以设置开机自动启动

 systemctl enable mysqld

 

10. 登录mysql并修改密码

 使用之前初始化时生成的临时密码登录MySQL

/usr/local/mysql/bin/mysql -u root -p

 登录后,使用以下SQL命令修改root用户的密码:

alter user 'root'@'localhost' identified by '123456'; #修改root用户的密码

PS: 手动复制上面代码,不带分号,然后手动敲入分号,执行成功,否则直接全部复制,可能执行失败。

 

11. 配置远程访问

如果你打算从远程机器访问MySQL,你需要修改MySQL的用户权限表,允许远程连接。这通常涉及到修改user

use mysql;
update user set host='%' where user='root';
flush privileges;

PS: 手动复制上面代码,不带分号,然后手动敲入分号,执行成功,否则直接全部复制,可能执行失败。

 

三. 其他指令

 

 启动MySQL服务

systemctl start mysqld

 关闭MySQL服务

systemctl stop mysqld

 重启MySQL服务

systemctl restart mysqld

 查看MySQL服务状态

systemctl status mysqld

 设置MySQL服务开机自启

systemctl enable mysqld

 禁止MySQL服务开机自启

systemctl disable mysqld

 查看MySQL服务是否开机启动

systemctl is-enabled mysqld

 

 

 

 

 

 

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 
posted @ 2024-06-04 11:46  Yaopengfei  阅读(45)  评论(1编辑  收藏  举报