Linux(CentOS7)下安装mysql8(便携版)

1、卸载老的便携版

  1. 停止 MySQL 服务:在删除文件之前,确保 MySQL 服务已停止。使用以下命令停止 MySQL 服务:

    sudo systemctl stop mysql
    

    如果您使用的是自定义服务名称,可能需要将 mysql 替换为相应的服务名称。

  2. 删除 MySQL 用户和组:如果在安装过程中创建了专用的 MySQL 用户和组,可以使用以下命令将它们删除:

    sudo userdel mysql
    sudo groupdel mysql
    
  3. 删除 MySQL 数据目录:MySQL 数据目录通常包含数据库文件、日志和配置文件。根据您的便携版安装位置,使用以下命令删除数据目录:

    sudo rm -rf /path/to/mysql/data/directory
    

    请确保您在删除数据目录之前备份了所有重要数据。

  4. 删除 MySQL 二进制文件:删除 MySQL 安装目录及其内容。根据您的便携版安装位置,使用以下命令删除 MySQL 安装目录:

    sudo rm -rf /path/to/mysql/installation/directory
    
  5. 更新系统环境变量:如果您在系统环境变量(如 PATHLD_LIBRARY_PATH)中添加了 MySQL 相关路径,您需要从相应的配置文件(如 ~/.bashrc~/.bash_profile/etc/profile)中删除它们。完成更改后,重新加载配置文件以使更改生效:

    source ~/.bashrc
    
  6. 删除 MySQL 服务文件:如果您创建了 MySQL 系统服务(如 /etc/systemd/system/mysql.service),使用以下命令删除服务文件:

    sudo rm /etc/systemd/system/mysql.service
    

    然后,使用以下命令重新加载系统服务:

    sudo systemctl daemon-reload
    

完成上述步骤后,您已成功卸载了 MySQL 8 便携版。如果您还需要卸载其他与 MySQL 相关的配置文件或日志,请根据您的系统设置手动删除它们。

2、下载mysql8

Linux(CentOS7)下安装mysql8(便携版)_第1张图片

注意:选择版本需要根据操作系统的函数库,ldd --version命令可以查看当前Linux系统的函数库,不能选择超过当前系统函数库版本的软件

CentOS7.9:
Linux(CentOS7)下安装mysql8(便携版)_第2张图片

两种方式

1、进入官网 https://dev.mysql.com/downloads/mysql/

上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。我们选择第一个二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。

下载之后,通过ssh工具sftp/ftp方式上传到你服务器centos7指定的目录即可/usr/local/

2、在你要放置安装包的目录下执行命令:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz

可以修改https://dev.mysql.com/get/Downloads/MySQL-8.0/之后的内容来指定版本,可以到官网查看版本

3、解压并移动

使用命令解压与移动:

tar -xJvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz \
&& mv ./mysql-8.0.33-linux-glibc2.12-x86_64 \
/usr/local/mysql-8.0.33-linux-glibc2.12-x86_64 \
&& cd /usr/local/

Linux(CentOS7)下安装mysql8(便携版)_第3张图片

4、创建一个软连接,方便创建与管理环境变量

ln -s /usr/local/mysql-8.0.33-linux-glibc2.12-x86_64 ./mysql8

5、创建 MySQL 用户和组

为了提高安全性,最好使用专门的系统用户和组来运行 MySQL。创建名为 mysql 的用户和组:

groupadd mysql && \
useradd -r -g mysql mysql
cat /etc/group		# 查看组
cat /etc/passwd		# 查看用户

6、更改文件所有权

将 MySQL 安装目录的所有权更改为新创建的 mysql 用户和组:

chown -R mysql:mysql /usr/local/mysql-8.0.33-linux-glibc2.12-x86_64/

7、创建 MySQL 配置文件

创建用于初始化mysql数据库时my.cnf配置文件

默认读取配置文件的顺序:
Default options are read from the following files in the given order:

1. /etc/my.cnf 2./etc/mysql/my.cnf 3./usr/local/mysql/etc/my.cnf 4.~/.my.cnf

/etc 目录下创建一个名为 my.cnf 的 MySQL 配置文件,并添加以下内容:

[mysqld]
# 设置mysql的安装目录
basedir=/usr/local/mysql8
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql8/data
socket=/usr/local/mysql8/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4

[mysqld_safe]
log-error=/usr/local/mysql8/data/mysqld.log
pid-file=/usr/local/mysql8/data/mysqld.pid

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[client]
port=3306
socket=/usr/local/mysql8/mysql.sock

8、初始化数据库

使用 mysqld 命令初始化 MySQL 数据库:

cd /usr/local/mysql8
sudo -u mysql bin/mysqld --initialize

初始化过程将生成一个临时密码。请记下这个密码,稍后您需要用它登录 MySQL 并修改密码。

注意:sudo -u 用户 ——作用是以指定用户或 ID 运行命令(或编辑文件)
Linux(CentOS7)下安装mysql8(便携版)_第4张图片

9、创建 MySQL 系统服务

创建一个名为 mysql.service 的文件,并将其放置在 /etc/systemd/system 目录下。在文件中添加以下内容:

sudo vim /etc/systemd/system/mysql.service

在该文件中添加以下内容:

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

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
ExecStop=/usr/local/mysql8/bin/mysqladmin -u root -pYOUR_ROOT_PASSWORD shutdown
PIDFile=/usr/local/mysql8/data/mysqld.pid
TimeoutStartSec=300
Restart=always
RestartSec=5
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

保存并退出文件编辑。

YOUR_ROOT_PASSWORD填写root账户的密码

现在,您需要重新加载系统服务以使更改生效:

sudo systemctl daemon-reload

10、启动并启用 MySQL 服务

启动 MySQL 服务并设置为开机启动:

sudo systemctl start mysql
sudo systemctl enable mysql

要检查 MySQL 服务的状态,可以使用以下命令:

sudo systemctl status mysql

如果一切正常,您应该看到类似于以下输出的内容:

● mysql.service - MySQL Community Server
   Loaded: loaded (/etc/systemd/system/mysql.service; enabled; vendor preset: disabled)
   Active: active (running) since ...

11、配置环境变量

将 MySQL 二进制文件路径添加到系统环境变量中。在 /etc/profile 文件的末尾添加以下内容:

export PATH=$PATH:/usr/local/mysql8/bin

保存并退出文件编辑。然后,使用以下命令重新加载配置文件以使更改生效:

source /etc/profile

12、登录 MySQL 并修改密码

使用临时密码登录 MySQL:

mysql -u root -p

输入临时密码并按 Enter 键。登录成功后,修改 root 用户的密码。将 your_new_password 替换为您选择的新密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

完成以上步骤后,您已成功在 CentOS 7 系统上安装了 MySQL 8 便携版。现在您可以开始使用 MySQL 数据库进行各种操作。

13、配置远程连接数据库

要允许远程连接到 MySQL 服务器并开放端口,请按照以下步骤操作:

  1. 登录到 MySQL 服务器:

    mysql -u root -p
    

    输入 root 密码并按 Enter 键。

  2. 为 root 用户授予远程访问权限。将 your_new_password 替换为您选择的新密码:

    CREATE USER 'root'@'%' IDENTIFIED BY 'your_new_password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    这将创建一个 root 用户,允许从任何 IP 地址连接,并为其分配完全访问权限。请注意,这种配置在生产环境中可能存在安全风险。在生产环境中,建议创建一个具有特定权限的单独用户,而不是为 root 用户授予全局权限。

  3. 退出 MySQL:

    exit;
    
  4. 如果您的服务器有防火墙(例如 firewalld),请确保开放 3306 端口:

    sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
    sudo firewall-cmd --reload
    

现在,您应该能够从远程客户端使用数据库工具(如 MySQL Workbench、DBeaver 或其他)连接到 MySQL 服务器。在连接时,请使用服务器的 IP 地址或主机名以及您创建的 root 用户和密码。

firewall-cmdfirewalld 的命令行界面,用于管理 Linux 系统上的防火墙规则。以下是一些常用的 firewall-cmd 命令:

  1. 查看默认区域

    sudo firewall-cmd --get-default-zone
    
  2. 列出默认区域的所有规则

    sudo firewall-cmd --list-all
    

    如果要列出特定区域的规则,可以使用 --zone 选项,例如:

    sudo firewall-cmd --zone=public --list-all
    
  3. 添加端口

    为默认区域永久添加端口(例如,开放 TCP 端口 3306):

    sudo firewall-cmd --permanent --add-port=3306/tcp
    

    若要为特定区域添加端口,请使用 --zone 选项,例如:

    sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
    
  4. 查看开放了哪些端口

    sudo firewall-cmd --list-ports
    

    如果您要查看特定区域的开放端口,请使用 --zone 选项。例如,要查看 public 区域的开放端口,请执行:

    sudo firewall-cmd --zone=public --list-ports
    
  5. 删除端口

    从默认区域永久删除端口(例如,关闭 TCP 端口 3306):

    sudo firewall-cmd --permanent --remove-port=3306/tcp
    

    若要从特定区域删除端口,请使用 --zone 选项,例如:

    sudo firewall-cmd --permanent --zone=public --remove-port=3306/tcp
    
  6. 重新加载防火墙规则

    应用永久规则更改,重新加载防火墙配置:

    sudo firewall-cmd --reload
    
  7. 添加服务

    为默认区域永久添加服务(如开放 HTTP 服务):

    sudo firewall-cmd --permanent --add-service=http
    

    若要为特定区域添加服务,请使用 --zone 选项,例如:

    sudo firewall-cmd --permanent --zone=public --add-service=http
    
  8. 删除服务

    从默认区域永久删除服务(如关闭 HTTP 服务):

    sudo firewall-cmd --permanent --remove-service=http
    

    若要从特定区域删除服务,请使用 --zone 选项,例如:

    sudo firewall-cmd --permanent --zone=public --remove-service=http
    

这些命令应该涵盖了管理端口和服务的基本需求。更多详细信息,请参阅 firewalld 文档 和 man firewall-cmd

参考资料

Linux 安装mysql8详细教程

linux下安装mysql8_linux)

你可能感兴趣的:(linux,mysql)