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   

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4年外包终上岸,我只能说这类公司能不去就不去......

我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是4年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会,千万…

广州芳村超5亿元“金融茶”爆雷,涉案金额高达5亿元。

昌世茶是一家茶叶厂商,在芳村茶叶市场开展业务。他们通过多位销售人员宣传其茶叶具有巨大的投资价值,并承诺高价回收。投资者被诱以高价购买茶叶,但随后发现价格迅速下跌,且昌世茶不再履行回收承诺。许多投资者因此遭受重大损失。…

靠着这份280页的前端面试指南,拿下了字节跳动offer

笔者是在今年秋招面试的头条教育线,顺利拿到了offer,把还记得的东西写下来,供大家参考一下。 一面 tcp 和 udp 的区别和使用场景?quic 基于 udp 怎么保证可靠性?讲一下同源策略和跨域方案?CORS 的几个头部…

MeterSphere实战(一)

MeterSphere是一位朋友讲到的测试平台,说这东西是开源的,因为我是做测试的,很乐意了解一些新鲜事物。在我看来,测试就是要专注一些领域,然后要啥都会一点点,接着融会贯通起来,这样就可以万变不离…

如何在 Git 中创建分支

1.打开命令行终端,执行以下命令来查看当前分支列表: git branch 显示当前仓库中的所有分支,以及当前所在的分支(显示为带有星号 * 的分支)。 2.创建一个新的分支,可以使用以下命令: git bran…

ABAP: POST 方式建立连接

1、采用APIpost 设置截图如下: ABAP建立调用设置 DATA: lr_http_client TYPE REF TO if_http_client.DATA: l_url TYPE STRING."建立服务 http客户端 CALL METHOD cl_http_client>create_by_urlEXPORTINGurl l_url "连接的地址IMPORTI…

LeetCode面向运气之Javascript—第66题-加1-99.78%

LeetCode第66题-加1 题目要求 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 举例 输入:digits [1,2,3] 输出:[1,2,4] 输入&#xff…

vue3 echarts 各省地图展示

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

配电站房智慧化改造

随着科技的发展和工业化自动化的不断提高&#xff0c;传统的配电室已经不能满足现代工业的需求。配电站房的智慧化改造可以提高电力系统的运行效率和安全性&#xff0c;依托电易云-智慧电力物联网实现配电房无人值守。以下是配电站房智慧化改造的一些主要方面&#xff1a; 设备…

C语言——结构体

一、结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量结构的&#xff0c;每个成员可以是不同类型的变量。 二、结构的声明 struct tag {member-list; }variable-list; 描述一个学生&#xff1a; typedef struct Student {char name[20]; //姓名int age; …

Symfony DomCrawler 库爬取图片实例

前言 在当今互联网时代&#xff0c;网络爬虫技术已经成为信息获取和数据分析的重要工具之一。本文将详细介绍如何利用Symfony DomCrawler库&#xff0c;结合代理设置和HTML内容解析&#xff0c;实现对搜狐网站图片的爬取&#xff0c;并展示实际代码和效果。 项目需求 本项目…

微信小程序游戏:移动游戏市场的新兴力量

随着移动互联网的迅猛发展&#xff0c;微信小程序游戏已经成为现代数字娱乐领域的一股不可忽视的力量。这些游戏通过融入微信这一广泛使用的社交平台&#xff0c;为用户带来了全新的游戏体验。本文探讨了微信小程序游戏的特点、发展现状和未来趋势。 微信小程序游戏最大的特点之…