Linux高级管理--安装MySQL数据库系统

MySQL服务基础

        MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后历经Sun 公司收购MySOL AB公司,Oracle公司收购Sun公司 的过程,目前MySQL项目由Oracle公司负责运营和维护. 本节将介绍MySOL的编译安装过程,服务控制方法,以及如何使用客户端工具访问MySQL数据库。

MySQL编译安装

        为了确保MySQL数据库功能的完整性、可定制性,本小节将采用源代码编译的方式安装MySOL 数据库系统,MySQL5.X系列版本的使用最为广泛,该版本的稳定性,兼容性都不错,这里将以 mysql-5.6.36.tar.gz为例,其官方站点为http://www.mysql.com/.

1.准备工作

(1)为了避免发生端口冲突,程序冲突等现象,建议先查询MySQL软件的安装情况,确认没有 使用以RPM方式安装的mysql-server、mysql软件包,否则建议将其卸载,再下载安装。

[root@lgcllc ~]# rpm -q mysql-server mysql
未安装软件包 mysql-server 
未安装软件包 mysql 

[root@lgcllc ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@lgcllc ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm

(2)MySQL5.X系列版本需要cmake编译安装,所以先安装cmake包。

[root@lgcllc ~]# rz -E
rz waiting to receive.
[root@lgcllc ~]# ls
cmake-2.8.6.tar.gz 

挂载解包安装cmake包
[root@lgcllc ~]# tar zxf cmake-2.8.6.tar.gz 
[root@lgcllc ~]# cd cmake-2.8.6/
[root@lgcllc cmake-2.8.6]# ./configure   //此过程需要等待时间
[root@lgcllc cmake-2.8.6]# gmake && gmake install   //此过程需要等待时间



2.源码编译及安装

(1)创建运行用户

为了加强数据库服务的权限控制,建议使用专门的运行用户,如mysql.此用户不需要直接登录 到系统,可以不创建宿主文件夹。

[root@lgcllc ~]# groupadd mysql  //添加组账号mysql
[root@lgcllc ~]# useradd -M -s /sbin/nologin mysql -g mysql  
(2)解包

将下载的mysql 源码包解压,释放到/usr/src目录下,并切换到展开后的源码目录。

[root@lgcllc ~]# rz -E
rz waiting to receive.
[root@lgcllc ~]# ls
cmake-2.8.6.tar.gz   mysql-5.6.36.tar.gz

[root@lgcllc ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[root@lgcllc ~]# cd /usr/src/mysql-5.6.36/

(3)配置

        在内容丰富,结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应地数据库系统 也应该支持不同的字符集编码.在配置过程中,可以将默认使用的字符集设置为utf-8.并添加其他 字符集的支持.

[root@lgcllc mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
//此过程需要等待时间

上述配置命令中,各选项的含义如下。

-DCMAKE_INSTALL_PREFIX:指定将MySOL数据库程序安装到某目录下,如目录/usr/local/ mysql.

-DSYSCONFDIR:指定初始化参数文件目录。

-DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf-8.

-DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于utf-8 字符集的通用规则。

-DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。 

(4)编译并安装
[root@lgcllc mysql-5.6.36]# make  //此过程需要等待时间
[root@lgcllc mysql-5.6.36]# make install  //此过程需要等待时间

3.安装后的其他调整

(1)对数据库目录进行权限设置
[root@lgcllc ~]# chown -R mysql:mysql /usr/local/mysql
(2)建立配置文件

        CentOS 7系统下默认支持MariaDB数据库.因此系统默认的/etc/my.cnf配置文件中是MariaDB 的配置文件.而在MySOL源码目录中的support-files文件夹下,提供了MySOL数据库默认的样本配 置文件my一default.cnf文件,在启动MySQL数据库服务之前,需要先将原有的my.cnf 文件替换为 MySQl提供的配置文件内容。

[root@lgcllc ~]# cd /usr/src/mysql-5.6.36/
[root@lgcllc mysql-5.6.36]# rm -rf /etc/my.cnf  //将原来etc文件夹下的my.cnf文件删除
[root@lgcllc mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
[root@lgcllc mysql-5.6.36]# vim /etc/my.cnf  //在my.cnf配置文件添加如下代码

[client]
default-character-set=utf8

[mysqld]
character_set_server=utf8

 

(3)初始化数据库

        为了能够正常使用MySOL数据库系统,应以运行用户mysql的身份执行初始化脚本mysql_ install_db, 指定数据存放目录等。

[root@lgcllc mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
(4)设置环境变量

        为了方便在任何目录下使用mysql命令,需要在/etc/profile设置环境变量。

[root@lgcllc mysql-5.6.36]# echo $PATH   //查看一下
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@lgcllc mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@lgcllc mysql-5.6.36]# . /etc/profile  //立即生效

[root@lgcllc mysql-5.6.36]# echo $PATH    //再查看一下
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

4.添加系统服务

        若希望添加mysqld系统服务,以便通过systemctl进行管理,可以直接使用源码包中提供的服务 脚本。找到support-files文件夹下的mysql.server脚本文件,将其复制到/usr/local/mysql/bin/目录 下.并改名为 mysqld.sh.然后创建 mysql系统服务的配置文件/usr/lib/systemd/system/ mysqld.service,将其添加为mysqld系统服务。

[root@lgcllc mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
[root@lgcllc mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh
[root@lgcllc mysql-5.6.36]# vim /usr/lib/systemd/system/mysqld.service  //修改配置文件添加如下代码
[Unit]
Description=MySQL Server
After=network.target


[Service]
User=mysql                                       //指定程序运行的用户账号
Group=mysql                                      //指定程序运行的组账号        


Type=forking
PIDFile=/usr/local/mysql/data/lgcllc.pid        //指定PID文件位置,默认为"主机名.pid"
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop


[Install]
WantedBy=multi-user.target

        这样,以后就可以使用systemctl 工具来控制MySOL数据库服务了。例如,若要启动mysqld 服 务,并查看其运行状态,可以执行以下操作。

[root@lgcllc ~]# systemctl start mysqld
[root@lgcllc ~]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.



[root@lgcllc ~]# systemctl status mysqld    //查看mysqld状态
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2023-12-13 00:50:29 CST; 7min ago
 Main PID: 9453 (mysqld)
   CGroup: /system.slice/mysqld.service
           ├─9330 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/lgcllc....
           └─9453 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/my...

12月 13 00:50:28 lgcllc systemd[1]: Starting MySQL Server...
12月 13 00:50:29 lgcllc systemd[1]: mysqld.service: Supervising process 9453 which is not our child. We'll most likely not ... exits.
12月 13 00:50:29 lgcllc systemd[1]: Started MySQL Server.
12月 13 00:55:26 lgcllc systemd[1]: mysqld.service: Supervising process 9453 which is not our child. We'll most likely not ... exits.
Hint: Some lines were ellipsized, use -l to show in full.


MySOL 服务器默认通过TCP 3306端口提供服务。

通过编辑/etc/my.cnf配置文件中[mysqld]配置段的 “port=3306”行,可以更改监听端口。

[root@lgcllc ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      9453/mysqld   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/241328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

查看mysql服务器的版本

在cmd下,可以使用命令mysql -V或者mysql --version查看mysql服务器的版本。例如: 如果已经登录mysql,可以使用命令show variables like version;来查询mysql服务器的版本。例如:

OpenAI Q* (Q Star)简单介绍

一、Q Star 名称由来 Q* 的两个可能来源如下: 1)Q 可能是指 "Q-learning",这是一种用于强化学习的机器学习算法。 Q 名称的由来*:把 "Q*"想象成超级智能机器人的昵称。 Q 的意思是这个机器人非常善于做决定…

串行计时芯片D1380/D1381,2.0V~5.5V 工作电流: 2V时 与TTL 兼容,采用DIP8、SOP8封装

D1380/D1381是一个带秒、分、时、日、日期、月、年的串行时钟保持芯片,每个月多少天以及闰年能自动调节, D1380/D1381低功耗工作方式, D1380/D1381用若干寄存器存储对应信息,一个32.768kHz 的晶振校准时钟,为了使用最小弓|脚,D1380/D1381使用…

PCIe在狂飙,SAS存储之路还有多远?

随着科技的飞速发展,固态硬盘(SSD)已经成为现代计算机系统中不可或缺的一部分。它以其出色的性能和可靠性,改变了我们对于存储设备的期待。当前业内SSD广泛应用,接口协议也有多样性,常见的SSD的接口协议归纳…

2024年风口最热门的项目,区块链技术重塑多个行业

区块链技术是一种基于去中心化、分布式、不可篡改的数据存储和传输技术,以链式数据结构为基础,通过密码学算法保证数据的安全性和不可篡改性。 以下是区块链技术的一些核心特点: 去中心化:区块链技术采用分布式架构,没…

5 转向事件驱动的架构

文章目录 核心概念消息代理事件和消息了解事件异步消息通信响应式系统 事件驱动的利弊消息传递模式发布—订阅工作队列过滤器数据持久性 消息传递代理协议、标准和工具AMQP和RabbitMQ基本概念交换类型和路由消息确认和拒绝 设置RabbitMQ安装RabbitMQRabbitMQ管理界面 Spring AM…

基于ssm大学生创新创业平台项目管理子系统设计与实现论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对大学生创新创业项目信息管理混乱,出错率高,信…

后台业务管理系统原型模板,Axure后台组件库(整套后台管理页面)

后台业务系统需要产品经理超强的逻辑思维能力和业务理解能力,整理了一批后台原型组件及完整的用 Axure 8 制作的后台系统页面,方便产品经理们快速上手制作后台原型。 包括交互元件、首页、商品、订单、库存、用户、促销、运营、内容、统计、财务、设置、…

跨品牌的手机要怎样相互投屏?iPhone和iPad怎么相互投屏?

选择买不同品牌的手机是基于品牌声誉、产品特点、价格和性价比等多个因素的综合考虑。每个人的需求和偏好不同,选择适合自己的手机品牌是一个个人化的决策。 一些品牌可能更加注重摄影功能,而其他品牌可能更加注重性能和速度。选择不同品牌的手机可以根据…

Transformer预测销售量

🤖 专栏《人工智能》 📖 博客说明: 本专栏记录我个人学习和实践人工智能相关算法的心得与内容,一同探索人工智能的奇妙世界吧! 🚀 零、说明 心血来潮,想利用Transformer做一个销售量预测的内容…

k8s集群部分使用gpu资源的pod出现UnexpectedAdmissionError问题

记录一次排查UnexpectedAdmissionError问题的过程 1. 问题 环境 3master节点N个GPU节点 kubelet版本:v1.19.4 kubernetes版本:v1.19.4 生产环境K8S集群,莫名其妙的出现大量UnexpectedAdmissionError状态的Pod,导致部分任务执…

C# | CountdownEvent使用教程 (通过与ManualResetEvent对比,快速了解其特性)

C# CountdownEvent使用教程 对于熟悉ManualResetEvent的同学来说,了解CountdownEvent的差异对于更好地利用它们是非常重要的。通过对ManualResetEvent和CountdownEvent的对比,我们可以更好地理解CountdownEvent的特点和使用场景。 ManualResetEvent回顾…

SpringCloud微服务 【实用篇】| Docker启示录

目录 一:Docker启示录 1. Docker启示录 2. Docker和虚拟机的区别 3. Docker架构 4. Centos7安装Docker 4.1. 卸载 4.2. 安装docker 4.3. 启动docker 4.4. 配置镜像加速 前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

阿里云国际版如何为SSL证书更换域名?

如果您需要为已签发的SSL证书更换绑定的域名,您可以使用数字证书管理服务提供的更换域名功能。本文介绍如何为SSL证书更换域名。 操作步骤 为SSL证书变更域名,您相当于重新购买了一张新证书,需要支付一定的费用。 您在更换域名前&#xff…

快速解决Edge浏览器常见问题:完整教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、Edge浏览器是什么? 二、常见的问题 1. DNS服务器出错 解决方案一:清除浏览器缓存和Cookie 2.网络问题 3.缓存和Cook…

Java .shp文件解析转换成地图可用的经纬度格式

1.新建ShapeUtils工具类解析shp文件 package com.ruoyi.info.geotoolsUtils; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Lis…

C语言实现在顺序表中找到最大值

用C语言实现在顺序表中找到最大值&#xff1a; #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…

新手上路:盘点「性能测试」必须掌握的技术点

前段时间&#xff0c;有一些小伙伴提出希望我们推送点性能测试的技术干货。所以&#xff0c;小编今天通过上网查资料&#xff0c;结合项目实操过程中的一些问题&#xff0c;总结了一些关于性能测试的内容&#xff0c;希望是大家想要了解的内容哈。 1、性能测试的目的 首先&am…

数据可视化:解锁企业经营的智慧之道

在现代企业管理中&#xff0c;数据可视化已经成为了一项重要的工具。它不仅仅是简单地展示数据&#xff0c;更是提供了深入理解数据、做出更明智决策的方法。作为一名可视化设计从业人员&#xff0c;我经手过一些企业自用的数据可视化项目&#xff0c;今天就来和大家聊聊数据可…

vue3 echarts 各省地图展示

效果&#xff1a; 1.在src下新建utils文件夹添加各省地图的json文件&#xff08;下载各省地图的网址 DataV.GeoAtlas地理小工具系列&#xff09; 2.安装echarts npm install echarts 3.在项目文件中中引入json <template><div class"back"><div id…