前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库架构师之道:MySQL安装与系统整合指南

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

作者头像
Srlua
发布2024-03-01 13:53:07
800
发布2024-03-01 13:53:07
举报
文章被收录于专栏:CSDN社区搬运CSDN社区搬运

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是基于客户端-服务端的运行模式数据库,服务端 负责数据处理,运行在数据库服务器上。

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

代码语言:javascript
复制
服务端、客户端可以在不同的机器上,也可以在一台机器上。

这种服务端,客户端,就在生活里很常见,如打游戏时的登录,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

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

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

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

代码语言:javascript
复制
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包

代码语言:javascript
复制
yum install mariadb-server mariadb -y

systemctl start mariadb
源码编译安装★

源代码编译三部曲

1.获取mysql代码源码包,解压缩,源码目录下有一个makefile 2.进入mysql的源码目录下,执行make指令,自动读取makefile 3.在make编译完成之后,执行make install,安装mysql到指定位置

具体的编译安装步骤★★
环境准备
  • Vmware,设置内存大于等于4G,linux的配置,cpu也至少给2核以上
free -m命令
代码语言:javascript
复制
[root@srlua001 opt]# free -m
cat /proc/cpuinfom命令
代码语言:javascript
复制
[root@srlua001 opt]# cat /proc/cpuinfo

processor 0 - 3 说明有4个cpu

top命令
代码语言:javascript
复制
[root@srlua001 opt]# top

执行后按1,查看cpu

  • 编译安装过程中,不得出现error关键字
cat /etc/redhat-release命令

查看操作系统版本

代码语言:javascript
复制
[root@srlua001 opt]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
编译前的依赖安装
代码语言:javascript
复制
#安装命令
[root@srlua001 opt]#yum install ncurses-devel libaio-devel gcc make cmake -y
代码语言:javascript
复制
创建mysq1用户,用于授权目录
获取mysql的源代码

下载链接:

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

使用wget命令下载

代码语言:javascript
复制
wget  https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

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

代码语言:javascript
复制
yum install wget
解压缩,安装mysql
代码语言:javascript
复制
[root@srlua001 tools]# tar -zxvf mysql-5.6.40.tar.gz

cd 进入mysql-5.6.40

执行cmake,生成makefile,用于编译安装
代码语言:javascript
复制
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
-DMYSOL_DATADIR=/application/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

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

make make install

make安装
代码语言:javascript
复制
[root@srlua001 tools]#make

下载至100%

代码语言:javascript
复制
[root@srlua001 tools]#make && make install

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

验证mysql的安装

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

创建软链接

mysql数据初始化操作

执行如下初始化命令

代码语言:javascript
复制
[root@srlua001 mysql-5.6.40]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

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

vim安装
代码语言:javascript
复制
yum install vim -y
net-tools安装
代码语言:javascript
复制
yum install net-tools -y

准备启动mysql 就得配置mysql的启动脚本

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

准备启动mysql

代码语言:javascript
复制
提前准备好mysql的配置文件 my.cnf

启动前准备

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

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

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

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

代码语言:javascript
复制
[root@srlua001 mysql]# chown -R mysql.mysql /application/mysql/

启动成功!

验证启动

代码语言:javascript
复制
[root@srlua001 mysql]# netstat  -tunlp|grep mysql

登录mysql据库

属于mysql服务端mysql-server已经正确启动了 就得用客户端去连接mysql,进行数据的增删改查

使用mysql命令连接

代码语言:javascript
复制
mysql -uroot -p

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

使路径生效

代码语言:javascript
复制
source /etc/profile

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

mysql安全配置

希望对你有帮助!加油!

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL数据库安装(centos)
    • 版本选择
      • 企业版
      • 社区版
      • 选哪个
    • MySQL特点
      • MySQL服务端-客户端
        • mysql下载选择
          • 软件包解释
        • 安装MySQL的方式
          • rpm包安装
          • yum方式安装
          • 源码编译安装★
        • mysql数据初始化操作
          • vim安装
          • net-tools安装
        • 准备启动mysql
          • 启动前准备
            • 启动成功!
              • 验证启动
                • 登录mysql据库
                  • mysql安全配置
                  相关产品与服务
                  云数据库 MySQL
                  腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档