Linux中mysql 默认安装位置&Linux 安装 MySQL

03-29 9547阅读 0评论

Linux MySQL 默认安装位置

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

MySQL 默认安装位置

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

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

which mysql

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

mysql --version

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

mysql_config --variable=pkglibdir

这个命令将显示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

MySQL数据目录结构

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

  • data目录:该目录包含MySQL实际存储数据库文件的地方。每个数据库都有一个对应的子目录。每个表都由一个.frm文件描述,以及.ibd文件(如果使用InnoDB存储引擎)或.myd和.myi文件(如果使用MyISAM存储引擎)。
  • mysql目录:该目录包含MySQL系统数据库,如mysql,performance_schema和sys。这些数据库用于存储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
    

    Linux中mysql 默认安装位置&Linux 安装 MySQL 第1张

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

    查看是否安装了 MySQL

    rpm -qa | grep mysql
    

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

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

    Linux中mysql 默认安装位置&Linux 安装 MySQL 第2张

    3. 移除 MySQL 相关的软件

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

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

    二、安装 MySQL

    官网传送门

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

    点击 MySQL Community Server

    Linux中mysql 默认安装位置&Linux 安装 MySQL 第3张

    选择 MySQL 的版本

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

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

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

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

      Linux中mysql 默认安装位置&Linux 安装 MySQL 第4张

      2. 下载压缩包

      此时有两种方法

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

        Linux中mysql 默认安装位置&Linux 安装 MySQL 第5张

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

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

        Linux中mysql 默认安装位置&Linux 安装 MySQL 第6张

        3. 查看下载好的压缩包

        ll
        

        Linux中mysql 默认安装位置&Linux 安装 MySQL 第7张

        4. 解压

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

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

        Linux中mysql 默认安装位置&Linux 安装 MySQL 第8张

        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
        

        6. 常见错误总结

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

        按照顺序安装即可解决

        Linux中mysql 默认安装位置&Linux 安装 MySQL 第9张

        (2)libc.so.6 缺失

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

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第10张

          (3)openssl 缺失

          安装 openssl-devel 即可解决

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第11张

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

          yum install openssl-devel -y
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第12张

          再次安装该软件包即可

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第13张

          (4)perl 和 libaio 缺失

          安装 prel 和 libaio 即可解决

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第14张

          查看与 perl 相关的软件

          yum list perl
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第15张

          安装

          yum install -y perl.x86_64
          

          查看与 libaio 相关的软件

          yum list libaio
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第16张

          安装

          yum install -y libaio*
          

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

          mysql -V
          mysql --version
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第17张

          8. 删除无用的包

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

          三、配置 MySQL 服务

          1. 简单配置

          查看 MySQL 服务状态

          systemctl status mysqld
          

          开启 MySQL 服务

          systemctl start mysqld
          

          设置 MySQL 服务开机自启

          systemctl enable mysqld
          

          重启 MySQL 服务

          systemctl restart mysqld
          

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

          systemctl status mysqld
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第18张

          2. 命令解析

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

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

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

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

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

          四、简单的使用 MySQL

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

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

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第19张

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

          mysql -u root -p
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第20张

          3. 修改 root 的密码

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第21张

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第22张

          4. 测试是否正常工作

          show databases;
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第23张

          5. 退出 MySQL 环境

          exit;
          

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第24张

          五、远程链接 MySQL

          1. 第一次远程连接测试

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

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第25张

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第26张

          2. 第二次远程连接测试

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

          Linux中mysql 默认安装位置&Linux 安装 MySQL 第27张

          (1)切换到 MySQL 数据库
          mysql -u root -p
          use mysql;
          
          (2)查看用户的访问权限

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

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

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

            Linux中mysql 默认安装位置&Linux 安装 MySQL 第28张

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

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

            Linux中mysql 默认安装位置&Linux 安装 MySQL 第29张

            3. 第三次远程连接测试

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

            Linux中mysql 默认安装位置&Linux 安装 MySQL 第30张

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

            注意、注意、注意!!!

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

            mysql -u root -p
            alter user 'root'@'%' identified with mysql_native_password by 'BuGu123456!';
            
            (2)刷新权限
            flush privileges;
            

            4. 第四次远程连接测试

            连接成功

            Linux中mysql 默认安装位置&Linux 安装 MySQL 第31张

            六、数据的导入和导出

            1. 导入数据到 MySQL 数据库

            进入 MySQL 服务

            mysql -uroot -p
            

            创建新的数据库

            create database test;
            

            连接到目标数据库

            use test;
            

            运行指定路径的 SQL 文件

            source /root/test.sql;
            

            测试

            select * from user;
            

            Linux中mysql 默认安装位置&Linux 安装 MySQL 第32张

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

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

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

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

            ll
            

            Linux中mysql 默认安装位置&Linux 安装 MySQL 第33张


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,9547人围观)

还没有评论,来说两句吧...

目录[+]