当前位置:   article > 正文

Linux中mysql 默认安装位置&Linux 安装 MySQL_linux mysql 数据库放在哪个目录

linux mysql 数据库放在哪个目录

Linux MySQL 默认安装位置

Linux系统中,MySQL是一种常用的关系型数据库管理系统。当我们在Linux系统上安装MySQL时,它将被默认安装在特定的位置。本文将介绍MySQL在Linux上的默认安装位置,并提供相关代码示例。

MySQL 默认安装位置

在大多数Linux发行版中,MySQL的默认安装位置是/var/lib/mysql目录。这个目录是MySQL数据库服务器使用的默认数据目录,所有数据库文件都存储在这里。

在安装MySQL之前,我们可以通过以下命令检查MySQL的默认安装位置:

which mysql
  • 1

这个命令将显示MySQL二进制可执行文件的路径。在大多数情况下,它将显示/usr/bin/mysql,这意味着MySQL被正确安装并且可以在命令行中使用。

mysql --version
  • 1

这个命令将显示MySQL的版本信息,确认MySQL已安装并且可以正常工作。

mysql_config --variable=pkglibdir
  • 1

这个命令将显示MySQL的库文件目录,通常是/usr/lib/mysql

代码示例:

$ which mysql
/usr/bin/mysql

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using  EditLine wrapper

$ mysql_config --variable=pkglibdir
/usr/lib/mysql
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

MySQL数据目录结构

/var/lib/mysql目录中,MySQL使用一系列文件和子目录来组织和存储数据。主要的子目录包括:

  • data目录:该目录包含MySQL实际存储数据库文件的地方。每个数据库都有一个对应的子目录。每个表都由一个.frm文件描述,以及.ibd文件(如果使用InnoDB存储引擎)或.myd.myi文件(如果使用MyISAM存储引擎)。
  • mysql目录:该目录包含MySQL系统数据库,如mysqlperformance_schemasys。这些数据库用于存储MySQL服务器和权限相关的信息。
  • tmp目录:该目录用于存储临时文件,例如在运行SELECT ... INTO OUTFILE语句时生成的文件。

除了这些目录外,还有一些其他文件和子目录,用于存储日志、错误文件和其他MySQL配置文件。这些文件的位置和用途可能因Linux发行版和MySQL版本而异。

总结

MySQL在Linux系统上的默认安装位置是/var/lib/mysql目录。这是MySQL服务器的数据目录,包含所有数据库文件。通过检查MySQL二进制文件的路径,我们可以确认MySQL是否正确安装。在/var/lib/mysql目录中,MySQL使用一系列文件和子目录来组织和存储数据。确保理解MySQL数据目录的结构对于管理和维护MySQL数据库至关重要。


Linux 安装 MySQL

一、安装 MySQL 的准备工作

1. 查看系统版本

cat /etc/redhat-release
  • 1

在这里插入图片描述

2. 查看系统是否已经安装过 MySQL

查看是否安装了 MySQL

rpm -qa | grep mysql
  • 1

查看是否有安装 mariadb,该软件与 MySQL 数据库有冲突,需要手动卸载

# 如果是 CentOS7 可以检测出已经安装了 mariadb
rpm -qa | grep mariadb
  • 1
  • 2

在这里插入图片描述

3. 移除 MySQL 相关的软件

如果系统中没有安装过与 MySQL 相关的软件,直接跳到下一步

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
  • 1

二、安装 MySQL

官网传送门

1. 找到压缩包的下载链接

点击 MySQL Community Server

在这里插入图片描述

选择 MySQL 的版本

注意 MySQL 的版本需要与 Linux 的版本对应上

  • centos7 系统对应的 MySQL 是 el7
  • centos8 系统对应的 MySQL 是 el8

一般情况下,直接选择第一个安装包即可,第一个安装包的版本会不定时的更新,与本文所用的安装包有略微的差别,但是并不影响具体的使用

截止 2023-5-11 最新版为 mysql-8.0.33-1.el8.x86_64.rpm-bundle.tar

在这里插入图片描述

2. 下载压缩包

此时有两种方法

  • 第一种,直接点击 No thanks, just start my download 进行下载,然后通过上传工具上传到服务器
  • 第二种,右键 No thanks, just start my download,选择复制链接,然后在服务器中通过 wget 命令下载到服务器

在这里插入图片描述

这里通过 wget 命令下载到服务器,安装到 usr/local 目录,总共 838.4M,下载速度比较慢,需要耐心等待

cd /usr/local
  • 1
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
  • 1

在这里插入图片描述

3. 查看下载好的压缩包

ll
  • 1

在这里插入图片描述

4. 解压

解压之后会有很多包产生,为了方便查看,将其解压到 /usr/local/mysql_package 里面

mkdir /usr/local/mysql_package
  • 1
cd /usr/local/mysql_package
  • 1
tar -xvf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar -C /usr/local/mysql_package
  • 1

在这里插入图片描述

5. 使用 rpm 安装

必须按照顺序执行命令,否则会出现依赖错误的报错,如果安装过程中出现错误,可以参考下一步给出的总结

rpm -ivh mysql-community-common-8.0.31-1.el8.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.31-1.el8.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.31-1.el8.x86_64.rpm

rpm -ivh mysql-community-client-8.0.31-1.el8.x86_64.rpm

rpm -ivh mysql-community-icu-data-files-8.0.31-1.el8.x86_64.rpm

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm

rpm -ivh mysql-community-server-8.0.31-1.el8.x86_64.rpm
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

6. 常见错误总结

(1)未按照规定顺序安装软件

按照顺序安装即可解决

在这里插入图片描述

(2)libc.so.6 缺失

大概率是因为下载的 MySQL版本与 Linux 版本对应不上,可以检查一下 MySQL 压缩包后缀名里面的参数是否与系统版本匹配

  • centos7 系统对应的 MySQL 是 el7
  • centos8 系统对应的 MySQL 是 el8

在这里插入图片描述

(3)openssl 缺失

安装 openssl-devel 即可解决

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
  • 1

在这里插入图片描述

使用 yum install openssl-devel -y 安装 openssl-devel

yum install openssl-devel -y
  • 1

在这里插入图片描述

再次安装该软件包即可

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
  • 1

在这里插入图片描述

(4)perl 和 libaio 缺失

安装 prellibaio 即可解决

在这里插入图片描述

查看与 perl 相关的软件

yum list perl
  • 1

在这里插入图片描述

安装

yum install -y perl.x86_64
  • 1

查看与 libaio 相关的软件

yum list libaio
  • 1

在这里插入图片描述

安装

yum install -y libaio*
  • 1

7. 查看已安装的 MySQL 的版本

mysql -V

mysql --version
  • 1
  • 2
  • 3

在这里插入图片描述

8. 删除无用的包

rm -rf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar

rm -rf /usr/local/mysql_package/
  • 1
  • 2
  • 3

三、配置 MySQL 服务

1. 简单配置

查看 MySQL 服务状态

systemctl status mysqld
  • 1

开启 MySQL 服务

systemctl start mysqld
  • 1

设置 MySQL 服务开机自启

systemctl enable mysqld
  • 1

重启 MySQL 服务

systemctl restart mysqld
  • 1

再次查看 MySQL 服务状态,可以看到 MySQL 服务已经成功运行

systemctl status mysqld
  • 1

在这里插入图片描述

2. 命令解析

(1)查看 MySQL 服务状态
systemctl status mysqld
  • 1
(2)暂时关闭 MySQL 服务

服务器重新启动之后,MySQL 服务会再次启动

systemctl stop mysqld
  • 1
(3)永久关闭 MySQL 服务

服务器重新启动之后,MySQL 服务也不会再次启动

systemctl disable mysqld
  • 1
(4)开启 MySQL 服务
systemctl start mysqld
  • 1
(5)设置 MySQL 服务开机自启
systemctl enable mysqld
  • 1
(6)重启 MySQL 服务
systemctl restart mysqld
  • 1

四、简单的使用 MySQL

1. 获取 root 用户的初始密码

第一次运行 MySQL 服务时,会进行初始化加载,同时会生成一个 root 用户的初始密码,可以通过查看日志文件 /var/log/mysqld.log 获取到 root 用户的初始密码,后续可手动修改密码

cat /var/log/mysqld.log | grep 'password'
  • 1

在这里插入图片描述

2. 使用 root 用户登录到 MySQL 服务

mysql -u root -p
  • 1

在这里插入图片描述

3. 修改 root 的密码

(1)修改初始化密码
alter user 'root'@'localhost' identified by 'BuGu123456!';
  • 1

在这里插入图片描述

(2)修改 MySQL 校验密码的安全策略【可选,一般不建议修改】
# 设置密码长度的最低位数
set global validate_password.length=4;

# 设置密码的安全等级,修改密码安全策略为低(只校验密码长度,至少8位)
set global validate_password.policy=LOW;
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

4. 测试是否正常工作

show databases;
  • 1

在这里插入图片描述

5. 退出 MySQL 环境

exit;
  • 1

在这里插入图片描述

五、远程链接 MySQL

1. 第一次远程连接测试

提示无法连接到主机,这是因为 3306 端口未开放

如果是云服务器,防火墙的端口、安全组的端口都需要开放

在这里插入图片描述

(1)开放 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • 1
(2)重新加载服务
firewall-cmd --reload
  • 1
(3)查看端口号是否开放
firewall-cmd --zone=public --list-port
  • 1

在这里插入图片描述

2. 第二次远程连接测试

可以看到提示该 root 用户没有远程访问的权限,不被允许远程链接到 MySQL 数据库

在这里插入图片描述

(1)切换到 MySQL 数据库
mysql -u root -p

use mysql;
  • 1
  • 2
  • 3
(2)查看用户的访问权限

user 表中的 host 字段表示用户的访问权限

  • localhost:只可以本地访问
  • %:允许任意地方访问
select host, user, plugin from user;
  • 1

注意:此时 root 用户并没有被授权远程访问 MySQL 服务,下图中的 host 字段应该为 localhost,而不是 %,由于我的失误,下面这张图片并不是该步骤对应的图片,在此展示的图片中,root 用户的 host 字段应为 localhost

在这里插入图片描述

(3)设置 root 用户任意地方可以访问
update user set host='%' where user='root';
  • 1
(4)刷新权限
flush privileges;
  • 1
(5)再次查看
select host, user, plugin from user;
  • 1

经过修改,root 用户的 host 字段已经成功被修改为 %,表示 root 用户可以远程访问 MySQL 服务

在这里插入图片描述

3. 第三次远程连接测试

可以看到提示密码校验方式不被允许远程链接到 MySQL 数据库

在这里插入图片描述

caching_sha2_password` 加密方式在远程访问时候不支持,需要修改为 `mysql_native_password
  • 1
(1)修改密码策略

注意、注意、注意!!!

修改密码策略的同时,将当前 root 用户的密码的验证策略也修改一下,否则当前用户的密码会失效,使得 root 用户无法使用原密码登录 MySQL 服务,目前我知道的解决办法就是重新安装 MySQL

mysql -u root -p

alter user 'root'@'%' identified with mysql_native_password by 'BuGu123456!';
  • 1
  • 2
  • 3
(2)刷新权限
flush privileges;
  • 1

4. 第四次远程连接测试

连接成功

在这里插入图片描述

六、数据的导入和导出

1. 导入数据到 MySQL 数据库

进入 MySQL 服务

mysql -uroot -p
  • 1

创建新的数据库

create database test;
  • 1

连接到目标数据库

use test;
  • 1

运行指定路径的 SQL 文件

source /root/test.sql;
  • 1

测试

select * from user;
  • 1

在这里插入图片描述

2. 将 MySQL 数据库的数据导出

返回 Linux 界面,将名为 test的数据库备份到指路径的 test1.sql 文件中

mysqldump -uroot -p test > /root/test1.sql
  • 1

完成后,使用 ll 命令可以查看到导出的 SQL 文件,也即完成备份

ll
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/286002?site
推荐阅读
相关标签
  

闽ICP备14008679号