Linux服务器安装卸载MySQL

在 CentOS 8 服务器上安装 MySQL可以按照以下步骤进行操作:

1、更新系统软件包列表

sudo yum update

2、安装 MySQL 服务器

sudo yum install mysql-server

3、启动 MySQL 服务:

sudo systemctl start mysqld

4、设置 MySQL 在系统启动时自动启动

sudo systemctl enable mysqld

这将配置 MySQL 服务在系统启动时自动启动。

5、配置防火墙以允许 MySQL 连接

sudo firewall-cmd --permanent --zone=public --add-service=mysql
sudo firewall-cmd --reload

6、检查 MySQL 服务状态:

sudo systemctl status mysqld

这将显示 MySQL 服务的状态,确保它正在运行。

在 Debian 10 x64 (buster)服务器上安装特定版本的 MySQL可以按照以下步骤进行操作:

1、添加 MySQL 官方存储库

wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb

这将下载并安装 MySQL 官方的存储库配置文件。

dpkg -i mysql-apt-config_0.8.18-1_all.deb

在安装过程中,你将看到一个配置界面。选择 “MySQL Server & Cluster”,然后选择你想要安装的特定版本,这里选择的是MySQL 8.0。
在这里插入图片描述
选择OK。
在这里插入图片描述

在这里插入图片描述

2、更新软件包列表

apt update

执行该命令可能报一下错误:

root@vultr:~# apt update
Hit:1 https://apprepo.vultr.com/debian universal InRelease
Get:2 http://repo.mysql.com/apt/debian buster InRelease [22.1 kB]                                                                       
Hit:3 https://deb.debian.org/debian buster InRelease                                                                                    
Hit:4 https://deb.debian.org/debian-security buster/updates InRelease
Hit:5 https://deb.debian.org/debian buster-updates InRelease
Hit:6 https://debian.mirror.constant.com buster InRelease
Err:2 http://repo.mysql.com/apt/debian buster InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
Reading package lists... Done
W: GPG error: http://repo.mysql.com/apt/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
E: The repository 'http://repo.mysql.com/apt/debian buster InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

这个错误通常是由于缺少 MySQL 存储库的公钥导致的。要解决这个问题,需要导入 MySQL 存储库的公钥。

执行以下命令来导入 MySQL 存储库的公钥:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
执行以下命令再刷新软件包列表
apt update

3、安装 MySQL 服务器

apt install mysql-server

在这一步中,将安装第一步选择的特定版本的 MySQL。

安装过程中会提示设置 MySQL root 用户的密码。请设置一个安全且强密码,并记住它。如果不填写则默认为空密码。
设置密码:
在这里插入图片描述
确认密码:
在这里插入图片描述
选择密码的加密方式Use Strong Password Encryption (RECOMMENDED) ,然后按确认Enter。
在这里插入图片描述
这个是MySQL 8推荐使用的密码加密方式,到这一步MySQL就安装成功了。

4、配置防火墙以允许 MySQL 连接

执行以下命令来允许传入的 MySQL 连接请求
ufw allow mysql

这将在防火墙规则中添加一条允许 MySQL 端口(默认为 3306)的规则。

执行以下命令来确认规则已被添加
ufw status

应该能够看到类似以下输出的规则:

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
3306/tcp                   ALLOW       Anywhere
...

现在,防火墙已经允许传入的 MySQL 连接请求通过指定的端口。

安装完 MySQL 后,进入 MySQL:

1、输入以下命令以进入 MySQL

mysql -u root -p

按下 Enter 键后,系统将提示你输入密码。
如果你在安装过程中设置了 root 用户的密码,请输入该密码并按下 Enter 键。
如果你没有设置 root 用户的密码,直接按下 Enter 键即可。

如果密码正确,你将成功进入 MySQL Shell,并看到类似以下的提示:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 Source distribution

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

2、在 MySQL Shell 中执行以下命令修改 root 用户在本地主机(localhost)的登录密码

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

new_password 替换为你想要设置的新密码。

3、授权 root 用户并允许从任意主机登录

#创建一个名为 'root' 的用户,允许该用户从任意主机登录,并设置密码
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
#授予 root 用户在任意主机上对所有数据库和所有表的全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

password替换成你的密码。

注意:如果安装的MySQL版本是5.7的话,还要编辑MySQL服务器的配置文件。
  1. 在Debian上,MySQL的配置文件通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/my.cnf
  2. 找到 bind-address 配置项,并设置IP地址为0.0.0.0
    bind-address = 0.0.0.0
    
  3. 保存并关闭配置文件。
  4. 重新启动MySQL服务器:sudo systemctl restart mysql

查询特定用户root的信息:

mysql> SELECT user, host, authentication_string, plugin, password_expired, account_locked FROM user WHERE user = 'root';
+------+---------------+-------------------------------------------+-----------------------+------------------+----------------+
| user | host          | authentication_string                     | plugin                | password_expired | account_locked |
+------+---------------+-------------------------------------------+-----------------------+------------------+----------------+
| root | %             | *6063C78456AA048BAF36BE1104D12D547834DFEA | mysql_native_password | N                | N              |
| root | localhost     | *81F5E21E35407D114A6CD4A731AEBFB6AF209E1B | mysql_native_password | N                | N              |
+------+---------------+-------------------------------------------+-----------------------+------------------+----------------+

对于下方授权语句的详细介绍:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

具体来说,这个语句的含义是:

  • GRANT: 这是授权语句的关键字,用于指定要执行授权操作。
  • ALL PRIVILEGES: 这表示授予用户所有权限,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER 等等,即对数据库的所有操作权限。
  • *.* : 这指定了要授权的数据库和表。*.* 表示所有数据库和所有表。你也可以根据需要指定特定的数据库或表。
  • TO 'root'@'%': 这表示将权限授予用户名为 ‘root’ 的用户,并允许从任意主机(通配符 ‘%’ 表示任意主机)进行连接。

因此,执行这个语句后,root 用户将具有在任意主机上对所有数据库和所有表执行任意操作的权限。

但是授权 root 用户并允许从任意主机登录会降低数据库的安全性,并增加潜在的风险。所以可以使用更安全的方法来设置 MySQL。
  1. 授权root用户只能从指定的IP地址(192.168.7.100)登录, 并且只授予某个数据库(yourdatabase)的权限。

    #yourpassword替换为你要设置的登录密码。
    CREATE USER 'root'@'192.168.7.100' IDENTIFIED BY 'yourpassword';
    #yourdatabase替换为你要授权的数据库。
    GRANT ALL PRIVILEGES ON yourdatabase.* TO 'root'@'192.168.7.100';
    
  2. 创建一个新的名为yourusername ,可以在任意主机(%)登录,密码为yourpassword的MySQL 用户,并且只授予某个数据库(yourdatabase)的权限。

    #将 'yourusername' 替换为你要创建的用户名,'yourpassword' 替换为你要设置的密码。
    CREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';
    #yourdatabase替换为你要授权的数据库。
    GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'%';
    

4、刷新权限

FLUSH PRIVILEGES;

5、查询MySQL的用户信息:

选择mysql数据库:

选择存储用户信息的正确数据库。一般来说,用户信息存储在 mysql 数据库的 user 表中。执行以下命令切换到 mysql 数据库:

USE mysql;
查询mysql数据库中用户信息:
SELECT user, host, authentication_string, plugin, password_expired, account_locked FROM user WHERE user = 'username';

将 ‘username’ 替换为你要查询信息的具体用户名。

检索所有用户的用户名、主机、密码哈希值、插件、密码过期状态以及账户锁定状态。你可以根据需要对查询进行过滤,例如,添加 WHERE 条件来限制查询特定用户root的信息:

mysql> SELECT user, host, authentication_string, plugin, password_expired, account_locked FROM user WHERE user = 'root';
+------+---------------+-------------------------------------------+-----------------------+------------------+----------------+
| user | host          | authentication_string                     | plugin                | password_expired | account_locked |
+------+---------------+-------------------------------------------+-----------------------+------------------+----------------+
| root | localhost     | *81F5E21E35407D114A6CD4A731AEBFB6AF209E1B | mysql_native_password | N                | N              |
+------+---------------+-------------------------------------------+-----------------------+------------------+----------------+

6、删除指定MySQL中允许登录的用户

1、选择正确的数据库:mysql

在登录后,选择存储用户信息的正确数据库。一般来说,用户信息存储在 mysql 数据库的 user 表中。执行以下命令切换到 mysql 数据库:

USE mysql;
2、删除指定用户:根据用户名和相应的主机名或 IP 地址
DELETE FROM user WHERE user = 'username' AND host = 'host';

将 ‘username’ 替换为要删除的用户名,将 ‘host’ 替换为相应的主机名或 IP 地址。

3、刷新权限
FLUSH PRIVILEGES;

Navicat连接MySQL可能出现的问题

在这里插入图片描述
这个问题表示:Navicat 无法加载名为 ‘caching_sha2_password’ 的身份验证插件。通常是由于 Navicat 版本较旧或不兼容MySQL 8.0 的新的身份验证插件引起的。‘caching_sha2_password’ 是 MySQL 8.0 默认使用的身份验证插件,而 Navicat 较早的版本可能不支持该插件。

1、升级 Navicat 版本:确保你使用的是最新版本的 Navicat。新版本通常会提供对新的身份验证插件的支持。

2、更改 MySQL 用户的身份验证插件:在 MySQL 中,你可以将用户的身份验证插件更改为旧的插件,以使其与 Navicat 兼容。例如,你可以将用户的身份验证插件更改为 ‘mysql_native_password’。你可以使用以下命令更改用户的身份验证插件:

ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

将 ‘username’ 替换为你的用户名,‘localhost’ 替换为你的主机名,‘password’ 替换为你的密码。

卸载MySQL

1、在 Debian 10 x64 (buster)服务器上卸载MySQL

  • 停止 MySQL 服务器

    systemctl stop mysql
    
  • 卸载 MySQL 包。执行以下命令将卸载 MySQL 相关的软件包:

    apt remove --purge mysql-server mysql-client mysql-common
    

    这将删除 MySQL 服务器、客户端和共享文件。

  • 删除 MySQL 配置和数据文件。执行以下命令删除 MySQL 配置文件和数据文件:

    rm -rf /etc/mysql
    rm -rf /var/lib/mysql
    

    注意:请谨慎执行此步骤,确保你没有重要的数据在 MySQL 数据目录中。

  • 清理残留的文件和依赖项。执行以下命令来清理可能残留的文件和依赖项:

    apt autoremove
    apt autoclean
    

    这将删除不再需要的依赖项和清理存储的软件包文件。

现在,MySQL 已经被卸载。请注意,此操作将删除所有与 MySQL 相关的文件和数据。在执行卸载操作之前,请确保你已经备份了重要的数据,并且确认你不再需要 MySQL 的任何数据和配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值