Linux(CentOS)安装 MySQL

CentOS版本:CentOS 7

三种安装方式:

一、通过 yum 安装,最简单,一键安装,全程无忧。

二、通过 rpm 包安装,需具备基础概念及常规操作。

三、通过 gz 包安装,需具备配置相关操作。


一、通过 yum 安装

安装 MySQL版本:MySQL Community Server 8.4.3 LTS

最简单的安装方式,但过程中涉及的密钥、rpm源url等地址如果过期,需要重新获取新的url

需要 root 权限,使用 root 用户进行命令操作。

1、获取官方 yum 源(url)

查看 CentOS 版本

复制代码
cat /etc/redhat-release

打开 MySQL 官方 yum 仓库网站https://repo.mysql.com/,获取与当前 CentOS 版本匹配的源的url(CentOS 7对应el7):https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm

2、安装 MySQL

导入密钥:当前最新密钥urlhttps://repo.mysql.com/RPM-GPG-KEY-mysql-2023,暂时搞不清楚这个密钥url是如何获取的。

复制代码
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

【过往密钥urlhttps://repo.mysql.com/RPM-GPG-KEY-mysql-2022

通过上面获取到的 yum 源(url)https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm,安装 mysqlyum 仓库

复制代码
rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm

使用 yum 自动安装 MySQL

复制代码
yum -y install mysql-community-server

查看 MySQL 安装目录

复制代码
whereis mysql

3、启动 MySQL

【MySQL 安装完成后,会自动配置名称为 mysqld 的服务,可以被 systemctl 管理。】

启动 MySQL 服务

复制代码
systemctl start mysqld

设置 MySQL 服务开机自动启动

复制代码
systemctl enable mysqld

查看 MySQL 服务状态

复制代码
systemctl status mysqld

查看 MySQL 服务进程

复制代码
ps axj | grep mysqld

4、登录 MySQL

获取临时密码进行登录

获取 MySQL 日志文件的路径,查看配置文件/etc/my.cnf 中的 log-error 的内容 /var/log/mysqld.log 就是 MySQL 日志文件的路径

复制代码
cat /etc/my.cnf

再查看 MySQL 日志文件 /var/log/mysqld.log,使用通道符按关键字直接检索,获取临时密码

复制代码
grep "temporary password" /var/log/mysqld.log

登录 MySQL

复制代码
mysql -u root -p

修改密码,MySQL默认的密码策略是要包含大写字母、小写字母、数字、特殊字符,长度大于8位

复制代码
alter user 'root'@'localhost' identified by '复杂的密码';

退出 MySQL

复制代码
exit;

重新登录 MySQL,使用修改后的密码

复制代码
mysql -u root -p

退出 MySQL

复制代码
exit;

5、开放端口 3306

为什么是 3306 ?

查看 MySQL 服务监听哪些端口

复制代码
netstat -nap | grep mysqld

检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=3306/tcp

开放端口

复制代码
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加载

复制代码
firewall-cmd --reload

再检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=3306/tcp

6、设置远程登录

MySQL默认只能本地连接,不允许远程终端连接


【前置测试,目的是为了搞清楚在设置远程登录之前,在远程终端上进行连接的情况】

在远程终端(192.168.88.1)上通过【终端】或【cmd】使用命令行连接

复制代码
mysql -h 192.168.88.130 -u root -p

失败,提示不允许连接

在远程终端(192.168.88.1)上通过【第三方图形化工具】连接

失败,提示不允许连接


登录 MySQL,新建 root 用户,允许在远程终端(192.168.88.1)上远程登录

复制代码
mysql -u root -p

create user 'root'@'192.168.88.1' identified by '复杂的密码';

如果是允许在所有远程终端上远程登录,则使用这个命令:

create user 'root'@'%' identified by '复杂的密码';

修改密码

复制代码
alter user 'root'@'192.168.88.1' identified by '复杂的密码';

授予权限(最大权限)

复制代码
grant all privileges on *.* to 'root'@'192.168.88.1';

刷新权限

复制代码
flush privileges;

查看用户情况

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

7、测试远程登录

在远程终端(192.168.88.1)上通过【终端】或【cmd】使用命令行连接

复制代码
mysql -h 192.168.88.130 -u root -p

连接登录进去,可以相应的数据库操作

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

在远程终端(192.168.88.1)上通过【第三方图形化工具】连接

连接登录进去,可以相应的数据库操作

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

二、通过 rpm 包安装

安装 MySQL版本:MySQL Community Server 8.4.3 LTS

需要 root 权限,使用 root 用户进行命令操作。

1、准备安装环境

查询是否存在 MariaDB 相关安装包,MariaDB是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

复制代码
rpm -qa | grep mariadb

删除已经安装的mariadb,通过上面查询得到的文件名为:mariadb-libs-5.5.60-1.el7_5.x86_64

复制代码
rpm -e --nodeps 文件名

再查询是否存在 MariaDB 相关安装包

复制代码
rpm -qa | grep mariadb

查看正在运行的 MySQL 服务

复制代码
ps axj | grep mysql

存在正在运行的 MySQL 服务,停止 MySQL 服务

复制代码
systemctl stop mysqld

查看 MySQL 服务状态

复制代码
systemctl status mysqld

查询是否存在 MySQL 相关安装包

复制代码
rpm -qa | grep mysql

存在 MySQL 相关安装包,全部卸载

复制代码
rpm -qa | grep mysql | xargs yum -y remove

再检查是否存在 MySQL 相关安装包

复制代码
rpm -qa | grep mysql

查询是否存在 MySQL 相关安装文件

复制代码
find / -name mysql

存在 MySQL 相关安装文件,全部删除

复制代码
rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /export/server/mysql

再查询是否存在 MySQL 相关安装文件

复制代码
find / -name mysql

删除 MySQL 相关配置文件

复制代码
rm -rf /etc/my.cnf /etc/init.d/mysql /etc/init.d/mysqld

删除 mysql 用户和用户组

复制代码
userdel mysql

groupdel mysql

2、下载 rpm 包

在远程终端计算机上,打开MySQL官网:https://www.mysql.com/

直接下载网址:https://dev.mysql.com/downloads/mysql/

其他版本

3、上传 rpm 包到 CentOS

使用FinalShell远程登录工具,并且使用 root 用户连接登录(注意这里说的root用户连接登录是指这样的)

4、解压 rpm 包

创建目录/export/server/mysql

复制代码
mkdir -p /export/server/mysql

解压到目录/export/server/mysql

.tar.gz 格式的为打包压缩,使用 tar -zxvf,解压后是一个与文件名同名的目录。

.tar 格式的为打包不压缩,使用 tar -xvf,解压后是相关的文件,不是目录。

所以这里需要在解压前,创建目录/export/server/mysql,解压到这个目录。

复制代码
tar -xvf mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar -C /export/server/mysql

查看解压后情况

复制代码
ls -l /export/server/mysql

5、安装依赖

安装openssl 和 openssl-devel,OpenSSL库是用于加密和解密数据的库,MySQL在安全通信时需要使用OpenSSL库。

复制代码
yum -y install openssl openssl-devel

安装 libaio,libaio库是Linux异步I/O操作的库,MySQL在进行I/O操作时需要使用libaio库。

复制代码
yum -y install libaio

安装ncurses,ncurses库是用于控制终端输出的库,MySQL的终端工具需要使用ncurses库。

复制代码
yum -y install libncurses*

6、安装 MySQL

进入目录 /export/server/mysql,查看目录内容

复制代码
cd /export/server/mysql

ls -l

依次执行以下命令,依次安装 /export/server/mysql 目录下的各个.rpm文件

复制代码
rpm -ivh mysql-community-common-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-client-plugins-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-libs-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-client-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-icu-data-files-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-server-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-libs-compat-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-embedded-compat-8.4.3-1.el7.x86_64.rpm;
rpm -ivh mysql-community-devel-8.4.3-1.el7.x86_64.rpm;

7、配置 MySQL

修改配置文件/etc/my.cnf,在 [mysqld] 中增加配置内容

复制代码
vim /etc/my.cnf

增加的配置内容以下

复制代码
# 设置 MySQL 服务运行的端口号
port = 3306
# 指定 MySQL 数据库的默认字符集
character-set-server=utf8mb4
# 允许外部访问
bind-address=0.0.0.0
# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
# 设置 MySQL 允许访问的最大连接数
max_connections = 1000
# 指定MySQL服务器存储数据文件的目录
datadir=/var/lib/mysql
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
# 事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED
# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

目录授权

复制代码
chown -R mysql:mysql /var/lib/mysql/

chown -R 表示对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

chown mysql.mysql 和 mysql:mysql 这两种写法是一样的,都是将后面指定的目录所属用户和组改成 mysql 用户和 mysql 组

8、启动 MySQL

【MySQL 安装完成后,会自动配置名称为 mysqld 的服务,可以被 systemctl 管理。】

启动 MySQL 服务

复制代码
systemctl start mysqld.service

设置 MySQL 服务开机自动启动

复制代码
systemctl enable mysqld.service

查看 MySQL 服务

复制代码
systemctl status mysqld.service

查看 MySQL 服务进程

复制代码
ps axj | grep mysqld

9、登录 MySQL

方式1:

获取临时密码进行登录

获取 MySQL 日志文件的路径,查看配置文件/etc/my.cnf 中的 log-error 的内容 /var/log/mysqld.log 就是 MySQL 日志文件的路径

复制代码
cat /etc/my.cnf

再查看 MySQL 日志文件 /var/log/mysqld.log,使用通道符按关键字直接检索,获取临时密码

复制代码
grep "temporary password" /var/log/mysqld.log

登录 MySQL

复制代码
mysql -u root -p

查看 MySQL 版本

复制代码
SELECT VERSION();

不修改密码,不允许执行SQL命令。

修改密码,MySQL默认的密码策略是要包含大写字母、小写字母、数字、特殊字符,长度大于8位

复制代码
alter user 'root'@'localhost' identified by '复杂的密码';

退出 MySQL

复制代码
exit;

重新登录 MySQL,使用修改后的密码

复制代码
mysql -u root -p

查看 MySQL 版本

复制代码
SELECT VERSION();

修改密码后,就可以执行SQL命令。

退出 MySQL

复制代码
exit;

方式2:

跳过密码验证进行登录。不推荐。除非通过方式1获取不到临时密码,或者使用过程中忘记密码了。

修改/etc/my.cnf 配置文件,在 [mysqld] 后面任意一行添加 skip-grant-tables

复制代码
vim /etc/my.cnf

重启 MySQL

复制代码
systemctl restart mysqld

登录 MySQL(无 -p 选项,无需密码登录)

复制代码
mysql -u root

查看 MySQL 版本

复制代码
SELECT VERSION();

刷新权限 ,需要刷新权限之后才能修改密码

复制代码
flush privileges;

修改密码,MySQL默认的密码策略是要包含大写字母、小写字母、数字、特殊字符,长度大于8位

复制代码
alter user 'root'@'localhost' identified by '复杂的密码';

退出 MySQL

复制代码
exit;

再修改/etc/my.cnf 配置文件,将 skip-grant-tables 这行注释或删除掉

复制代码
vim /etc/my.cnf

重启 MySQL

复制代码
systemctl restart mysqld

重新登录 MySQL,使用修改后的密码

复制代码
mysql -u root -p

退出 MySQL

复制代码
exit;

10、开放端口3306

为什么是 3306 ?

查看 MySQL 服务监听哪些端口

复制代码
netstat -nap | grep mysqld

检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=3306/tcp

开放端口

复制代码
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加载

复制代码
firewall-cmd --reload

再检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=3306/tcp

11、设置远程登录

MySQL默认只能本地连接,不允许远程终端连接


【前置测试,目的是为了搞清楚在设置远程登录之前,在远程终端上进行连接的情况】

在远程终端(192.168.88.1)上通过【终端】或【cmd】使用命令行连接

复制代码
mysql -h 192.168.88.130 -u root -p

失败,提示不允许连接

在远程终端(192.168.88.1)上通过【第三方图形化工具】连接

失败,提示不允许连接


登录 MySQL,新建 root 用户,允许在远程终端(192.168.88.1)上远程登录

复制代码
mysql -u root -p

create user 'root'@'192.168.88.1' identified by '复杂的密码';

如果是允许在所有远程终端上远程登录,则使用这个命令:

create user 'root'@'%' identified by '复杂的密码';

% 代表所有终端

修改密码

复制代码
alter user 'root'@'192.168.88.1' identified by '复杂的密码';

授予权限(最大权限)

复制代码
grant all privileges on *.* to 'root'@'192.168.88.1';

刷新权限

复制代码
flush privileges;

查看用户情况

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

退出 MySQL(Ctrl + D 快捷键)

12、测试远程登录

在远程终端(192.168.88.1)上通过【终端】或【cmd】使用命令行连接

复制代码
mysql -h 192.168.88.130 -u root -p

连接登录进去,可以相应的数据库操作

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

在远程终端(192.168.88.1)上通过【第三方图形化工具】连接

连接登录进去,可以相应的数据库操作

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

13、删除安装文件

删除安装包文件

复制代码
rm -rf /root/mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar

删除安装包解压的安装目录

复制代码
rm -rf /export/server/mysql

三、通过 gz 包安装

安装 MySQL版本:MySQL Community Server 5.7.44

需要 root 权限,使用 root 用户进行命令操作。

1、准备安装环境

查询是否存在 MariaDB 相关安装包,MariaDB是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

复制代码
rpm -qa | grep mariadb

删除已经安装的mariadb,通过上面查询得到的文件名为:mariadb-libs-5.5.60-1.el7_5.x86_64

复制代码
rpm -e --nodeps 文件名

再查询是否存在 MariaDB 相关安装包

复制代码
rpm -qa | grep mariadb

查看正在运行的 MySQL 服务

复制代码
ps axj | grep mysql

存在正在运行的 MySQL 服务,停止 MySQL 服务

复制代码
systemctl stop mysqld

查看 MySQL 服务状态

复制代码
systemctl status mysqld

查询是否存在 MySQL 相关安装包

复制代码
rpm -qa | grep mysql

存在 MySQL 相关安装包,全部卸载

复制代码
rpm -qa | grep mysql | xargs yum -y remove

再检查是否存在 MySQL 相关安装包

复制代码
rpm -qa | grep mysql

查询是否存在 MySQL 相关安装文件

复制代码
find / -name mysql

存在 MySQL 相关安装文件,全部删除

复制代码
rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /export/server/mysql

再查询是否存在 MySQL 相关安装文件

复制代码
find / -name mysql

删除 MySQL 相关配置文件

复制代码
rm -rf /etc/my.cnf /etc/init.d/mysql /etc/init.d/mysqld

删除 mysql 用户和用户组

复制代码
userdel mysql

groupdel mysql

2、下载 gz 包

打开MySQL官网:https://www.mysql.com/

获取与当前 CentOS 版本匹配的 gz 编译源码包链接地址:

https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-el7-x86_64.tar.gz

下载 gz 编译源码包到 /root 目录下

复制代码
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-el7-x86_64.tar.gz

查看/root 目录内容

复制代码
ls /root

3、解压 gz 包

创建目录/export/server

复制代码
mkdir -p /export/server

解压到目录/export/server

.tar.gz 格式的为打包压缩,使用 tar -zxvf,解压后是一个与文件名同名的目录。

.tar 格式的为打包不压缩,使用 tar -xvf,解压后是相关的文件,不是目录。

复制代码
tar -zxvf mysql-5.7.44-el7-x86_64.tar.gz -C /export/server

查看解压后情况,在 /export/server 下 解压出一个与gz包同名的目录mysql-5.7.44-el7-x86_64

复制代码
ls -l /export/server

为方便后续操作,将解压出来的目录mysql-5.7.44-el7-x86_64 重命名为 mysql,查看目录内容

复制代码
mv /export/server/mysql-5.7.44-el7-x86_64 /export/server/mysql

ls -l /export/server

4、安装依赖

安装开发工具包 gcc 和 gcc-c++

复制代码
yum -y install gcc gcc-c++

安装依赖包

安装openssl 和 openssl-devel,OpenSSL库是用于加密和解密数据的库,MySQL在安全通信时需要使用OpenSSL库。

复制代码
yum -y install openssl openssl-devel

安装 libaio,libaio库是Linux异步I/O操作的库,MySQL在进行I/O操作时需要使用libaio库。

复制代码
yum -y install libaio

安装ncurses,ncurses库是用于控制终端输出的库,MySQL的终端工具需要使用ncurses库。

复制代码
yum -y install libncurses*

5、安装 MySQL

进入目录/export/server/mysql,查看目录内容

复制代码
cd /export/server/mysql

ls -l

创建 mysql 用户组、mysql 用户

复制代码
groupadd mysql

useradd -r -g mysql mysql

useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

useradd -g参数表示把mysql用户添加到mysql用户组中。

创建目录

创建 mysql 存储数据 data 目录

复制代码
mkdir /export/server/mysql/data

创建 mysql 存储 mysq.sock 文件目录

复制代码
mkdir /var/lib/mysql

目录授权

将 /export/server/mysql 和/var/lib/mysql目录所属用户和组改成 mysql 用户和 mysql 组

复制代码
chown -R mysql:mysql /export/server/mysql

chown -R mysql:mysql /var/lib/mysql

chown -R 表示对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

chown mysql.mysql 和 mysql:mysql 这两种写法是一样的,都是将后面指定的目录所属用户和组改成 mysql 用户和 mysql 组

创建 mysql 启动配置文件 my.cnf,配置内容

复制代码
vim /etc/my.cnf

配置内容以下

复制代码
[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
socket=/var/lib/mysql/mysql.sock
port=3306
basedir=/export/server/mysql
datadir=/export/server/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
explicit_defaults_for_timestamp=true
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysql.server]
user=mysql
basedir=/export/server/mysql

初始化 MySQL,因为目前MySQL目录(/export/server/mysql)设置的所属用户是mysql,所以--user=mysql,如果是 root 用户,--user=root

复制代码
/export/server/mysql/bin/mysqld --initialize --user=mysql --basedir=/export/server/mysql --datadir=/export/server/mysql/data

设置开机启动

配置启动脚本,修改 basedir 和 datadir 的路径

复制代码
vim /export/server/mysql/support-files/mysql.server

修改 $bindir/mysqld_safe 关键处,在其后面添加--user=mysql,MySQL目录的权限是什么用户就加什么用户,因为目前MySQL目录(/export/server/mysql)设置的所属用户是mysql,所以--user=mysql,如果是 root 用户,--user=root

将 /export/server/mysql/support-files/mysql.server 复制到 /etc/rc.d/init.d/mysqld

复制代码
cp /export/server/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

赋予执行权限

复制代码
chmod +x /etc/rc.d/init.d/mysqld

添加系统服务,将 mysqld 服务加入到系统服务

复制代码
chkconfig --add mysqld

查看 mysql 服务,检查添加系统服务是否生效

复制代码
chkconfig --list mysqld

因为 mysqld 是我们手动添加的,不是本地服务,所以想要设置开机启动不能用 systemctl enable mysqld ,systemctl 命令只能操作正常安装在系统的本地服务,所以要通过 chkconfig 命令来设置开机启动。

设置开机启动、关机开机启动

复制代码
chkconfig mysqld on

chkconfig mysqld off

检查环境变量

复制代码
echo $PATH

配置环境变量,添加 mysql 环境变量

复制代码
vim /etc/profile

刷新环境变量

复制代码
source /etc/profile

再检查环境变量

复制代码
echo $PATH

6、启动 MySQL

查看 MySQL 服务

复制代码
systemctl status mysqld

启动 MySQL 服务

复制代码
systemctl start mysqld

设置 MySQL 服务开机自动启动(因为 mysqld 是我们手动添加的,不是本地服务,不用使用systemctl enable mysqld 设置开机启动)

复制代码
systemctl enable mysqld

查看 MySQL 服务

复制代码
systemctl status mysqld

因为 mysqld 是我们手动添加的,不是本地服务,所以想要设置开机启动不能用 systemctl enable mysqld ,systemctl 命令只能操作正常安装在系统的本地服务,所以要通过 chkconfig 命令来设置开机启动。

查看 MySQL 服务进程

复制代码
ps -ef | grep mysqld

7、登录 MySQL

获取临时密码进行登录,在前面初始化 MySQL 的时候,有输出临时密码。

登录 MySQL

复制代码
mysql -u root -p

查看 MySQL 版本

复制代码
SELECT VERSION();

不修改密码,不允许执行SQL命令。

修改密码,MySQL默认的密码策略是要包含大写字母、小写字母、数字、特殊字符,长度大于8位

复制代码
alter user 'root'@'localhost' identified by '复杂的密码';

退出 MySQL

复制代码
exit;

重新登录 MySQL,使用修改后的密码

复制代码
mysql -u root -p

查看 MySQL 版本

复制代码
SELECT VERSION();

修改密码后,就可以执行SQL命令。

退出 MySQL

复制代码
exit;

8、开放端口3306

为什么是 3306 ?

查看 MySQL 服务监听哪些端口

复制代码
netstat -nap | grep mysqld

检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=3306/tcp

开放端口

复制代码
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加载

复制代码
firewall-cmd --reload

再检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=3306/tcp

9、设置远程登录

MySQL默认只能本地连接,不允许远程终端连接


【前置测试,目的是为了搞清楚在设置远程登录之前,在远程终端上进行连接的情况】

在远程终端(192.168.88.1)上通过【终端】或【cmd】使用命令行连接

复制代码
mysql -h 192.168.88.130 -u root -p

失败,提示不允许连接

在远程终端(192.168.88.1)上通过【第三方图形化工具】连接

失败,提示不允许连接


登录 MySQL,新建 root 用户,允许在远程终端(192.168.88.1)上远程登录

复制代码
mysql -u root -p

create user 'root'@'192.168.88.1' identified by '复杂的密码';

如果是允许在所有远程终端上远程登录,则使用这个命令:

create user 'root'@'%' identified by '复杂的密码';

% 代表所有终端

修改密码

复制代码
alter user 'root'@'192.168.88.1' identified by '复杂的密码';

授予权限(最大权限)

复制代码
grant all privileges on *.* to 'root'@'192.168.88.1';

刷新权限

复制代码
flush privileges;

查看用户情况

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

退出 MySQL(Ctrl + D 快捷键)

10、测试远程登录

在远程终端(192.168.88.1)上通过【终端】或【cmd】使用命令行连接

复制代码
mysql -h 192.168.88.130 -u root -p

连接登录进去,可以相应的数据库操作

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

在远程终端(192.168.88.1)上通过【第三方图形化工具】连接

连接登录进去,可以相应的数据库操作

复制代码
 SELECT host, user FROM mysql.user WHERE user = 'root';

11、删除安装文件

复制代码
rm -rf /root/mysql-5.7.44-el7-x86_64.tar.gz

扩展

查看 mysql 命令所在的目录

复制代码
which mysql

查看 mysql 所在的目录

复制代码
whereis mysql

查看数据目录

方式1:

复制代码
mysql -u root -p -e "show variables like 'datadir'"

方式2:查看配置文件

复制代码
vim /etc/my.cnf
相关推荐
博观而约取几秒前
Linux 和 macOS 终端中常见的快捷键操作
linux·运维·macos
林政硕(Cohen0415)30 分钟前
Linux驱动开发进阶(三)- 热插拔机制
linux·驱动开发·热插拔
wangjun515932 分钟前
linux,物理机、虚拟机,同时内外网实现方案;物理机与虚拟机互通网络;
linux·服务器·网络
杰克崔37 分钟前
分析sys高问题的方法总结
linux·运维·服务器
WSSWWWSSW37 分钟前
安装nfs客户端(centos)
linux·运维·centos
THRUSTER1111140 分钟前
MySQL-- 函数(单行函数):数值函数, 字符串函数
数据库·mysql·函数·navicat·单行函数
橙序研工坊1 小时前
MySQL的进阶语法7(索引-B+Tree 、Hash、聚集索引 、二级索引(回表查询)、索引的使用及设计原则
数据库·sql·mysql
Bonnie_12151 小时前
07-MySQL-事务的隔离级别以及底层原理
数据库·mysql
李迟2 小时前
跨系统平台实践:在内网自建kylin服务版系统yum源
linux
odoo-卜永2 小时前
ubuntu22.04连接爱普生打印机型号L385
linux·经验分享·ubuntu