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 ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 三 2023-12-13 00:50:29 CST; 7min agoMain 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
相关文章:
Linux高级管理--安装MySQL数据库系统
MySQL服务基础 MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后…...
团建策划信息展示服务预约小程序效果如何
团建是中大型企业商家每年举办的员工活动,其形式多样化、具备全部参与的娱乐性。但在实际策划流程及内容时,部分公司便会难以入手,术业有专攻,这个时候团建策划公司便会发挥效果。 如拓展训练、露营、运动会、体育竞技等往往更具…...
一个Redis实例最多能存放多少keys
程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …...
K8S(四)—pod详解
目录 pod介绍Pod的概念:Pod的特性:Pod的配置:Pod的控制:示例 YAML 文件: pod启动流程问题 两种方式启动镜像的升级和回滚更新 Deployment:回滚检查 Deployment 历史版本回滚到之前的修订版本缩放 Deploymen…...
shiro Filter加载和执行 源码解析
一、背景 在使用若依框架(前后端不分离包含shiro安全框架)时,发现作者添加了验证码、登录帐号控制等自定义过滤器,于是对自定的过滤器加载和执行流程产生疑问。下面以验证码过滤器为例,对源码解析。注意类之间的继承关…...
IDEA上传jar包到Maven
mvn install:install-file //固定格式,maven的语法 -Dfilealibaba-sdk-1.0.0.jar //这里填写包的路径,因为我们是在当前目录所以只需要输入包名即可 -DgroupIdcom.qiehua.csdn //这里填写包的groupId,之后作为pom.xml中引用的gr…...
JavaScript——基本语法
1.定义变量: 变量类型 变量名 变量值 var关键字声明变量 es6版本以上 var 可写可不写 <script>// 定义变量:变量类型 变量名 变量值 var关键字声明变量 es6版本以上 var 可写可不写var num 2;</script>2.条件控制 <script>var …...
一款最近很火的开源低代码平台
低代码平台近年来获得大量融资的原因是多方面的。首先,低代码平台代表了软件开发领域的一个重要趋势,即通过简化编程过程来降低技术门槛,使非专业开发者也能构建应用程序。这为那些希望加速数字化转型的企业提供了新的可能性,因此…...
vue之代理配置devServer(vue.config.js)片段
关于vue.config.js的部分配置解析:首先看下面一段配置 devServer: { open: process.platform darwin,//true or false (true则启动项目自动打开系统自带浏览器) host: 0.0.0.0, // 配置devServer服务监听的地址 比如:想让局域网…...
CTD测试流程
连接 连接17Plus,用usb转232线,db9公针2、3分别接Data I/O的2、3。DB9的5接Data I/O的1。尼龙塞子打开状态。不用闭合。 软件连接 打开SeaTermAF V2,注意打开前先把串口插上,否则软件读不到串口。如果读不到,就在插…...
面试经典150题(15-19)
leetcode 150道题 计划花两个月时候刷完,今天(第七天)完成了5道(15-19)150: 今天这些都是我之前做过的,还有就是今天的全都是模拟过程。。所以做的还算快。 15(13. 罗马数字转整数) 题目描述&a…...
Linux下的网络服务
一般来说,各种操作系统在网络方面的性能比较是这样的顺序BSD>Linux>Win NT>Win 9X, 由此说来,Linux的网络功能仅次于UNIX,而强于Win NT和其它的视窗系列产品,对于Win2000我还不能评价太多,因为不是很熟。 Lin…...
制造业对于IT软硬件监控和摄像头故障监控的需求
制造业对于生产线的自动化和智能化需求较高,IT监控运维管理软件在制造业的应用也日益普及。监控易为制造业提供了一系列定制化的解决方案,助力企业实现生产线的智能化和高效化。 随着制造业的数字化转型和智能化升级,IT运维管理软件的需求也在…...
idea一些报错
java: 非法字符: \ufeff 使用IDEA修改文件编码 在IDEA右下角,将编码改为GBK,再转为UTF-8,重新启动项目。具体步骤如下: 在IDEA右下角找到UTF-8字样的编码格式设计项,点击选择第一项GBK,然后Convert…...
【Java系列】详解多线程(二)——Thread类及常见方法(上篇)
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一…...
Android Dialog 弹出时,隐藏 navigation bar
1、概述 一些场合,要求界面是全屏的,然而在全屏界面下,弹出dialog 又会导致虚拟按键栏重新弹出来,也是比较难受的。(而且查了非常多方法都是不能完美的解决这个问题,要么是压根不能用,要么是会闪一下虚拟栏…...
LeetCode(Hot100)——1:两数之和
方法1:暴力求解 利用两次for循环来处理, 外循环确定一个数字, 利用内循环不断求和来判断是否两数之和为target,来进行求解。 public class LeetCode1 {Test//测试方法public void test() {int [] nums{2,7,11,15};int target9;/…...
【Qt】报错error:undefined reference to `vtable for Consumer‘的解决方法
1. 问题原因 在创建完程序后,点击构建,显示编译错误。 错误问题如下: error: undefined reference to vtable在编译输出中查看显示如下: error:undefined reference to vtable for custom2. 原因分析 这个错误通常是因为 C 的虚函数表&am…...
【linux系统】用户功能与权限详细总结
前言 菜某的笔记总结,有错误还请指正。 linux用户的概念与root用户 这么理解:一台电脑有多个操作者,每个操作者只能无限制操作自己文件夹中的东西,其他地方的操作需要给与相应权限才能操作。 root用户:就是最高级的…...
ELK简单介绍二
学习目标 能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana kibana介绍 Kibana是一个开源的可视化平台,可以为ElasticSearch集群…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
