MySQL安装:glibc版本与源码安装

这篇具有很好参考价值的文章主要介绍了MySQL安装:glibc版本与源码安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、MySQL的安装方式

1、二进制软件包安装
第一种是yum安装或者rpm安装
第二种是glibc版本的安装
2、源码包编译安装
通用的Linux下都可以编译安装

二、区分数据库与数据库实例

1、什么是MySQL数据库?
数据库(database): 操作系统或存储上的数据文件的集合。mysql数据库中,数据库文件可以是*.frm、.MYD、.MYI、*.ibd等结尾的文件, 不同存储引擎文件类型不同。
2、什么是MySQL数据库实例?
数据库实例(instance): 由后台进程或者线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。 数据库实例才是真正操作数据库的。
注意:MySQL的后台守护程序mysqld是单进程多线程的工作模式。
3、什么是MySQL数据库服务器?
数据库服务器(database server):部署安装数据库实例的服务器
4、数据库和数据库实例之间的关系是什么?
通常情况下,数据库实例和数据库是一一对应的关系,也就是一个数据库实例对应一个数据库; 但是,在集群环境中存在多个数据库实例共同使用一个数据库。oracle RAC

三、安装MySQL的glibc版本

软件版本的下载地址
https://www.mysql.com/
这里下载的glibc版本为mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

安装需求 配置
安装目录 /mysql_3306
数据目录 /mysql_3306/data/
端口号 3306

第一步,解压安装包

tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

第二步,把mysql解压后的压缩包(GBLIC版本)移动到/根目录下,然后更名mysql_3306

# mv mysql-5.7.31-linux-glibc2.12-x86_64 /mysql_3306

第三步,建议创建一个数据库专用账号mysql

# useradd -r -s /sbin/nologin mysql

第四步,清空系统中的原有mariadb的配置文件(/etc/my.cnf)
/etc/my.cnf文件是操作系统为mariadb软件预留的配置的文件,之所以一定要删除这个文件,主要原因在于数据库在初始化时,首先在自己的安装目录下寻找有没有my.cnf配置文件,如果有,会自动根据里面的配置信息进行初始化。如果找不到,则到/etc目录下寻找my.cnf文件,但是由于/etc目录下的my.cnf文件是mariadb的,如果按照mariadb的配置,会导致初始化失败。

# rm -rf /etc/my.cnf

第五步,切换到mysql工作目录/mysql_3306,创建一个mysql-files目录并更改权限
mysql-files:主要用于数据文件的导入与导出(备份与还原),MySQL的备份会产生一个文件xxx.sql或xxx.txt。mysql-files就是导入与导出时,所指定的默认目录。目前mysql-files没有什么用,但是你必须要创建,因为GLIBC属于二进制软件包,其很多配置已经默认了,包括mysql-files文件夹,如果没有这个文件夹可能导致mysql无法启动。

# cd /mysql_3306
# mkdir mysql-files

# chown mysql:mysql mysql-files
# chmod 750 mysql-files

第六步,初始化数据库
可以实现数据库的初始化(产生data目录),而且会产生一个随机密码,这个密码要记住

# bin/mysqld --initialize --user=mysql --basedir=/mysql_3306

选项说明:
--initialize 初始化
--user=mysql 以mysql用户的身份初始化数据库,产生文件都是mysql作为拥有者
--basedir=xxx mysql安装目录
初始化密码位置 password is generated for root@localhost: (cn_jS+*n2wh

数据库的安装容易出错的地方就是初始化,主要看安装目录下有没有生成一个data目录来判断初始化是否成功。
第七步,设置安全加密连接(SSL),数据传输会采用加密形式,适合敏感数据

# bin/mysql_ssl_rsa_setup --datadir=/mysql_3306/data

第八步,启动MySQL数据库服务

# cp support-files/mysql.server /etc/init.d/mysql_3306

默认情况下,glibc版本的数据库要求安装到/usr/local/mysql目录,其mysql.server脚本中对应的目录也是/usr/local/mysql,这会导致mysql无法启动。所以可以更改其basedir以及datadir两个变量

# vim /etc/init.d/mysql_3306
46basedir=/mysql_3306
47datadir=/mysql_3306/data

启动服务

# service mysql_3306 start

当MySQL启动成功后,其日志会自动写入到data数据目录中的主机名称.err文件中,涉及MySQL无法启动、启动报错,其详细的原因99%在.err文件中可以找到问题!

第九步,把mysql客户端命令添加到环境变量,以便以后可以随时访问

# echo 'export PATH=$PATH:/mysql_3306/bin' >> /etc/profile
# source /etc/profile

设置完成后,我们可以在任意位置调用mysql客户端命令

# mysql -uroot -p

第十步,MySQL GLIBC版本后续配置
1更改管理员root账号的密码

[root@localhost mysql_3306]# bin/mysqladmin -uroot password '123' -p
Enter password:输入刚刚初始化产生的临时密码

还可以进入mysql中修改密码

[root@localhost mysql_3306]# mysql -uroot -p
mysql> set password='123';
重置完成后,建议刷新权限,让其立即生效
mysql> flush privielges;

2 定义MySQL的配置文件my.cnf(非常重要)

# vim /mysql_3306/my.cnf
[mysqld]
basedir=/mysql_3306
datadir=/mysql_3306/data
socket=/tmp/mysql.sock
validate_password=OFF
选项说明:
[mysqld] 代表针对服务器端进行配置
basedir 代表数据库的安装目录
datadir 代表数据目录,以后专门用于存放数据文件的(核心目录)
socket 代表套接字文件,专门为客户端与服务器端连接提供一个桥梁
validate_password 关闭MySQL密码强度检测
# service mysql_3306 restart

3 安全配置

# mysql_secure_installation
都选择y就行
主要是是否启动密码脚尖器、是否设置root密码、是否允许root远程连接、是否移除测试数据库等等一系列功能。

四、MySQL的源码编译安装

基本步骤:配置—>编译—>安装

安装需求 配置
安装目录 /mysql_3307
数据目录 /mysql_3307/data
端口号 3307
socket文件 $basedir/mysql.sock
字符集 utf8mb4
第一步:安装MySQL编译需要用到的依赖库
# yum -y install ncurses-devel cmake libaio-devel openssl-devel

第二步:上传软件到服务器端并解压

# tar -xf mysql-boost-5.7.31.tar.gz

第三步:配置(基于cmake进行配置)

# cd mysql-5.7.31
# vim myconfig.sh
cmake . \
-DCMAKE_INSTALL_PREFIX=/mysql_3307 \
-DMYSQL_DATADIR=/mysql_3307/data \
-DMYSQL_TCP_PORT=3307 \
-DMYSQL_UNIX_ADDR=/mysql_3307/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=system \
-DWITH_BOOST=boost
# chmod +x myconfig.sh
# ./myconfig.sh

选项说明:
-DCMAKE_INSTALL_PREFIX :安装路径
-DMYSQL_DATADIR :数据目录
-DMYSQL_TCP_PORT :端口号
-DMYSQL_UNIX_ADDR :套接字文件位置
  • 常用配置选项
配置选项 描述 默认值 建议值
CMAKE_INSTALL_PREFIX 安装基目录(basedir) /usr/local/mysql 根据需求
MYSQL_DATADIR 数据目录(datadir) $basedir/data 根据需求
SYSCONFDIR 默认配置文件my.cnf路径 /etc
MYSQL_TCP_PORT TCP/IP端口 3306 非默认端口
MYSQL_UNIX_ADDR 套接字socket文件路径 /tmp/mysql.sock $basedir/
DEFAULT_CHARSET 默认字符集 latin1 utf8mb4
DEFAULT_COLLATION 默认校验规则 latin1_swedish_ci utf8mb4_general_ci
WITH_EXTRA_CHARSETS 扩展字符集 all all
ENABLED_LOCAL_INFILE 是否启用本地加载外部数据文件功能 OFF 建议开启
WITH_SSL SSL 支持类型 system 建议显式指定
WITH_BOOST Boost库源代码的位置 Boost库是构建MySQL所必需的,建议事先下载

第四步:编译安装

# make -j2 && make install
选项说明:
-j2 :代表同时开启多个线程共同实现编译操作

建议还是使用make编译更加保险,而不是make -j2;
第五步:初始化数据库
1 创建mysql-files目录

# cd /mysql_3307
# mkdir mysql-files
# chown -R mysql:mysql /mysql_3307
# chmod 750 mysql-files

2 数据库初始化操作

# bin/mysqld --initialize --user=mysql --basedir=/mysql_3307 --datadir=/mysql_3307/data
...
2020-08-24T11:07:37.621346Z 1 [Note] A temporary password is generated for
root@localhost: O6.iHqrZgzz7

3 拷贝mysql.server脚本到/etc/init.d目录,然后启动数据库

# cp support-files/mysql.server /etc/init.d/mysql_3307
# service mysql_3307 start

若出现该异常
安装glibc2.38,MySQL,mysql,数据库,服务器
原因:mysql这个用户对/mysql_3307目录没有写入文件的权限,写入mysql_socket套接字文件。
办法:

# chown -R mysql.mysql /mysql_3307

第六步:MySQL源码编译安装后的后续配置
1 编写MySQL配置文件,my.cnf

# vim /mysql_3307/my.cnf
[mysqld]
basedir=/mysql_3307
datadir=/mysql_3307/data
socket=/mysql_3307/mysql.sock
# service mysql_3307 restart

2 设置管理员的密码

# bin/mysqladmin -uroot password '123' -p
Enter password:O6.iHqrZgzz7

3 安全设置

# bin/mysql_secure_installation

4 添加mysql_3307到开机启动项

# chkconfig --add mysql_3307
# chkconfig mysql_3307 on

拓展:如何访问不同的数据库

方式一:直接进入对应软件目录中的bin目录,运行客户端

# mysql -uroot -p

可以通过server version查看当前mysql版本

方法二:通过编辑文件.bashrc来设置别名

vim ~/.bashrc
alias mysql_3306="/mysql_3306/bin/mysql"
alias mysql_3307="/mysql_3307/bin/mysql"

注意:需要切换用户后才能生效

方法三:拷贝bin/mysql到/usr/bin目录下并重命名文章来源地址https://www.toymoban.com/news/detail-775885.html

cp /mysql_3306/bin/mysql /usr/bin/mysql_3306

之后就可以在任意位置通过mysql_3306来启动该mysql;
同样的mysql_3307的操作也一样

到了这里,关于MySQL安装:glibc版本与源码安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos7升级glibc2.28

    centos7自带的glibc对于某些软件是太旧的,决定将glibc升级至2.28。 2.1 下载glibc源码 2.2 查看glibc的INSTALL文件所描述的依赖 该文件描述了依赖软件的版本要求,例如gcc和make的版本。 2.3 升级gcc工具链 依据INSTALL文件,4.9 = gcc = 8.1.1。本文使用gcc 7.3.1,make 4.2.1。 安装gcc7工具链可参

    2024年02月13日
    浏览(47)
  • (8版本)mysql数据库安装教程(自用保存)

    博主简介:想进大厂的打工人 博主主页: @xyk: 所属专栏: mysql 参考csdn大神们的文章, 总结出来的详细用法~~~  目录 文章目录 一、下载MySQL8.0.33 二、配置初始化文件my.ini(重点) 三、初始化MySQL 四、安装MySQL服务并启动 + 修改密码 4.1 安装MySQL服务 4.2 启动MySQL服务 4.3 连接Mys

    2024年02月07日
    浏览(44)
  • glibc2.35-通过tls_dtor_list劫持exit执行流程

    glibc2.35删除了malloc_hook、free_hook以及realloc_hook,通过劫持这三个hook函数执行system已经不可行了。 传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system,在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持的效果。 在程序返回时会通过exit函数

    2024年02月10日
    浏览(35)
  • Centos指令mysql安装报错为“ Failing package is: mysql-community-client-5.7.38-1.el7.x86_64”

    在centos输入指令# yum -y install mysql-community-server 然后报错为 warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-client-5.7.38-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql The GPG keys listed for the \\\"MySQL 5.7 Community Server\\\" r

    2024年02月12日
    浏览(47)
  • MySQL高级特性篇(7)-数据库版本控制与迁移

    MySQL数据库版本控制与迁移 在软件开发的过程中,数据库版本控制和迁移是非常重要的一部分。这些过程确保了数据库的结构及数据的追踪和更新。在本篇博客中,我们将介绍如何使用Markdown语法来编写MySQL数据库版本控制与迁移的相关内容。 MySQL数据库版本控制与迁移是指在

    2024年02月22日
    浏览(49)
  • windows下升级mysql数据库版本(压缩包升级)

    由于需要修复漏洞不得不对数据库版本进行升级,看了好多教程以下是个人整理的一些记录 注:我这边是从5.7.32——5.7.39版本 1.升级前要先备份旧的数据 (1)先记录一下mysql的安装路径 //查看mysql安装路径 select @@basedir as basePath from dual; //查看mysql data数据存放路径 show global

    2024年02月12日
    浏览(45)
  • Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…   mysql驱动版本msvc2015x32版本调

    2023年04月26日
    浏览(87)
  • MySQL5.7源码编译Debug版本

    编译环境Ubuntu22.04LTS https://dev.mysql.com/downloads/mysql/?spm=a2c6h.12873639.article-detail.4.68e61a14ghILh5 cmake clang pkg-config perl 参考:https://dev.mysql.com/doc/refman/5.7/en/source-installation-prerequisites.html 通过文件读取安装 参考:https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html 编译MySQL的deb

    2024年02月14日
    浏览(35)
  • 【MySQL数据库】初识MySQL数据库、安装MySQL

    在今天的数字化世界中,数据是企业和个人的重要资产。管理和存储数据变得至关重要,而 MySQL 数据库是一种备受欢迎的开源关系型数据库管理系统,它提供了稳定、可靠、高性能的数据存储解决方案。本文将介绍 MySQL 数据库的基本概念和安装过程,以便初学者能够轻松上

    2024年02月08日
    浏览(64)
  • MySQL数据库及安装MySQL

    (1)描述事物的符号记录 (2)包括数字、文字、图形、图像、声音、档案记录等 (3)以”记录“形式按统一的格式进行存储 (1)将不同的记录组织在一起 (2)用来存储具体数据 (1)表的集合,是存储数据的仓库 (2)以一定的组织方式存储的相关有关的数据集合 (1

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包