• 数据库架构师之道:MySQL安装与系统整合指南


    目录

    MySQL数据库安装(centos)

    版本选择

    企业版

    社区版

    选哪个

    MySQL特点

    MySQL服务端-客户端

    mysql下载选择

    软件包解释

    安装MySQL的方式

    rpm包安装

    yum方式安装

    源码编译安装★

    具体的编译安装步骤★★

    环境准备

    free -m命令

    cat /proc/cpuinfom命令

    top命令

    cat /etc/redhat-release命令

    编译前的依赖安装

    获取mysql的源代码

    解压缩,安装mysql

    执行cmake,生成makefile,用于编译安装

    make安装

    验证mysql的安装

    创建软链接

    mysql数据初始化操作

    vim安装

    net-tools安装

    准备启动mysql

    启动前准备

    启动成功!

    验证启动

    登录mysql据库

    mysql安全配置


    MySQL数据库安装(centos)

    版本选择

    企业版

    MySQL企业版由MySQL AB公司内部专门的人员负责开发及维护,但同时也会吸纳社区人员编写的优秀代码及算法,并且由他们严格按照软件测试流程对这些采纳的代码进行测试,确定没有问题之后才会进行发布。简单地说,MySQL企业版是由MySQL公司内部发布的,它参考了社区版的先进代码功能和算法,是MySQL公司的赢利产品,需要付费才能使用及提供服务支持,稳定性和可靠性无疑都是最好的,当然了,企业腰包得够鼓才能买得起。某知名分类门户网站2008年就购买过MySQL企业版,价格不比那些闭源的商业数据库便宜,也是大几十万。

    社区版

    MySQL社区版则是由分散在世界各地的MySQL开发者、爱好者以及用户参与开发与测试的,包括软件代码的管理、测试工作,也是他们在负责。社区也会设立BUG汇报机制,收集用户在使用过程中遇到的BUG情况,相比于企业版,社区版的开发及测试环境没有那么严格。

    选哪个

    mysql是成熟产品,企业版和社区版在性能方面区别不大,对于我们学习而言,社区版即可。

    它们的区别可以如下了解

    • 企业版对代码的管理、测试更严格、稳定性更好。

    • 企业版不遵循GPL开源协议,而社区版遵循,可以免费用.。

    • 企业版可以购买额外的收费服务,如7*24的技术支持,有钱任性。

    • 社区版的安全性,稳定性,无法像企业版有及时的维护、技术支持。

    MySQL特点

    支持多种操作系统,Windows、MacOS、Lnux等支持多种语言API,如C、C++、Pvthon、PHP、Java等

    支持多线程、充分利用硬件资源 支持多种存储引擎

    mysql就是一个基于socket编写的C/S架构的软件

    客户端软件 自带:如mysql命令,mysqldump命令等 python模块:如pymysqlmysql

    MySQL服务端-客户端

    先看下什么是B/S和C/S架构。

    B/S是Browser/Server指浏览器和服务器端,在客户机不需要装软件,只需要装一个浏览器。

    C/S是Client/Server指客户端和服务器,在客户机端必须装客户端软件及相应环境后,才能访问服务器。

    MySQL是基于客户端-服务端的运行模式数据库,服务端 负责数据处理,运行在数据库服务器上。

    用户通过发送增删改查等请求,发送给 客户端软件,然后通过网络提交请求给 服务端 ,服务端接收到请求,再进行处理,然后返回。

    服务端、客户端可以在不同的机器上,也可以在一台机器上。

    这种服务端,客户端,就在生活里很常见,如打游戏时的登录,QQ、微信的登录,MySQL也是一个登录的过程。

    mysql下载选择

    了解数据库后,我们可以下载mysql软件了

    MySQL :: Download MySQL Community Server (Archived Versions)

    我们等会需要用的是这个安装包:

    https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

    软件包解释

    mysql-5.6.45.tar.gz
    ​
    5 是主版本号
    6 是发行级别,主版本号和发行级别组合,构成发行序列号
    45 表示在此发行系列的一个版本,随着新版本发布,进行递增
    ​
    例如
    mysq1-5.6.46.tar.gz
    mysql-5.6.47.tar.gz
    每次更新后,最后一个数字会递增
    如果功能变化较大,字符串的第二个数字会递增,也就是如5.7
    如果软件格式大改动,第一个数字,主版本号会变化

    企业生产场景下,数据库是重中之重,因此选择MySQL数据库一定要慎重。

    下面是给出的一些选择建议。

    1)一定要选稳定版版本,即择开源的社区版的稳定版。
    ​
    2)产品线选择,建议选择第二条产品线中的5.5或5.6版本。目前互联网公司
    主流版本是5.5和5.6。
    ​
    3)选择MySQL数据库至少发布半年以上的稳定版本。
    ​
    4)要尽可能选择前后几个月没有大的BUG修复的版本,而不是大量修复BUG的集中版本。
    ​
    5)最好选择向后较长时间没有更新发布的版本。
    ​
    6)要考虑开发人员开发程序使用的版本是否兼容你所选的版本。
    ​
    7)首先作为内部开发测试数据库环境,测试运行几个月的时间。
    ​
    8)优先对企业非核心业务采用新的数据库稳定版本软件。

    安装MySQL的方式

    方式有哪些

    rpm包安装

    rpm安装必须要提前准备好官网、第三方源提供好的rpm软件包,且无法满足定制化需求、编译参数、修改路径、依赖冲突问题,所以不建议使用。

    yum方式安装

    这是最方便的,yum自动去源中下载相关rpm包

    1. yum install mariadb-server mariadb -y
    2. systemctl start mariadb

    源码编译安装★

    源代码编译三部曲

    1.获取mysql代码源码包,解压缩,源码目录下有一个makefile

    2.进入mysql的源码目录下,执行make指令,自动读取makefile

    3.在make编译完成之后,执行make install,安装mysql到指定位置

    具体的编译安装步骤★★
    环境准备
    • Vmware,设置内存大于等于4G,linux的配置,cpu也至少给2核以上

    free -m命令
    [root@srlua001 opt]# free -m

    cat /proc/cpuinfom命令
    [root@srlua001 opt]# cat /proc/cpuinfo

    processor 0 - 3 说明有4个cpu

    top命令
    [root@srlua001 opt]# top

    执行后按1,查看cpu

    • 编译安装过程中,不得出现error关键字

    cat /etc/redhat-release命令

    查看操作系统版本

    1. [root@srlua001 opt]# cat /etc/redhat-release
    2. CentOS Linux release 7.9.2009 (Core)
    编译前的依赖安装
    1. #安装命令
    2. [root@srlua001 opt]#yum install ncurses-devel libaio-devel gcc make cmake -y

    创建mysq1用户,用于授权目录

    获取mysql的源代码

    下载链接:

    https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

    使用wget命令下载

    wget  https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

    如果没有wget命令,则先下载wget

    yum install wget

    解压缩,安装mysql
    [root@srlua001 tools]# tar -zxvf mysql-5.6.40.tar.gz

    cd 进入mysql-5.6.40

    执行cmake,生成makefile,用于编译安装
    1. cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
    2. -DMYSOL_DATADIR=/application/mysql-5.6.40/data \
    3. -DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
    4. -DDEFAULT_CHARSET=utf8 \
    5. -DDEFAULT_COLLATION=utf8_general_ci \
    6. -DWITH_EXTRA_CHARSETS=all \
    7. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    8. -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    9. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    10. -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    11. -DWITH_ZLIB=bundled \
    12. -DWITH_SSL=bundled \
    13. -DENABLED_LOCAL_INFILE=1 \
    14. -DWITH_EMBEDDED_SERVER=1 \
    15. -DENABLE_DOWNLOADS=1 \
    16. -DWITH_DEBUG=0

    cmake编译参数设置完毕之后,就会自动生成makefile,可以执行

    make

    make install

    make安装
    [root@srlua001 tools]#make

    下载至100%

    [root@srlua001 tools]#make && make install

    当cmake,make,make install 成功的依次执行完毕后,看到如下内容,才表明正确

    验证mysql的安装

    能执行如下操作就算是安装成功结束了!!

    创建软链接

    mysql数据初始化操作

    执行如下初始化命令

    [root@srlua001 mysql-5.6.40]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

    以及看到如下的数据目录,表示mysql初始化正确

    vim安装

    yum install vim -y

    net-tools安装

    yum install net-tools -y

    准备启动mysql

    就得配置mysql的启动脚本

    使用mysql初始化自动生成的管理脚本

    准备启动mysql

    提前准备好mysql的配置文件 my.cnf

    启动前准备

    在/application/mysql下创建tmp文件夹

    1.默认情况下会出现这种错误

    2.发现这里还是没有启动成功,是因为权限的问题

    避免权限问题,把我们所有目录与子目录的属主与属组换成mysql

    [root@srlua001 mysql]# chown -R mysql.mysql /application/mysql/

    启动成功!

    验证启动

    [root@srlua001 mysql]# netstat  -tunlp|grep mysql

    登录mysql据库

    属于mysql服务端mysql-server已经正确启动了

    就得用客户端去连接mysql,进行数据的增删改查

    使用mysql命令连接

    mysql -uroot -p

    bash没找到mysql -uroot -p命令是因为环境变量里没有,所有我们要去把mysql路径写入PATH中

    使路径生效

    source /etc/profile

    由于没有设置密码,不安全

    mysql安全配置

    希望对你有帮助!加油!

    若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

  • 相关阅读:
    WWW2024 | PromptMM:Prompt-Tuning增强的知识蒸馏助力多模态推荐系统
    接口自动化测试框架搭建【附详细搭建视频】
    java 文件上传 MultipartFile
    Outlook无需API开发连接钉钉群机器人,实现新增会议日程自动发送群消息通知
    redis 集群搭建的三种方式
    Docker部署的时候从容器获取宿主机的CPU等信息
    通信信道:无线信道中衰落的类型和分类
    java 对比文件 md5实现秒传
    redis:内存穿透、内存击穿、内存雪崩以及各数据类型应用场景
    RabbitMQ【基本使用】
  • 原文地址:https://blog.csdn.net/Srlua/article/details/136144160