Linux安装MySQL数据库系统

1、MySQL的编译安装。

1.1、准备工作

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

复制代码
[root@localhost ~]# rpm -q mysql-server mysql
未安装软件包 mysql-server 
未安装软件包 mysql 

安装光盘自带的ncurses-devel包

复制代码
[root@localhost ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 

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

复制代码
[root@localhost mysql]# tar zxf cmake-2.8.6.tar.gz 
[root@localhost mysql]# cd cmake-2.8.6/
[root@localhost cmake-2.8.6]# ./configure 
[root@localhost cmake-2.8.6]# gmake 
[root@localhost cmake-2.8.6]# gmake install

1.2、源码编译安装

1)创建运行用户

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

复制代码
[root@localhost ~]# groupadd mysql  //创建组账户
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql 

2)解包

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

复制代码
[root@localhost ~]# cd mysql/
[root@localhost mysql]# tar zxf mysql-5.6.36.tar.gz -C /usr/src

3)配置

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

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

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

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

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

复制代码
[root@localhost ~]# cd /usr/src/mysql-5.6.36/
[root@localhost 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

4)编译并安装

复制代码
[root@localhost mysql-5.6.36]# make
[root@localhost mysql-5.6.36]# make install

1.3、安装后的其他调整

1)对数据库目录进行权限设置

复制代码
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
//以递归方式设置目录的宿主和属组为mysql

2)建立配置文件

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

复制代码
[root@localhost ~]# rm -rf /etc/my.cnf
//将原先etc文件夹下的my.cnf文件删除

[root@localhost ~]# cd /usr/local/mysql/
//切换到mysql的安装目录

[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
//复制MySQL数据库默认样本配置文件到/etc目录下,并命名为my.cnf

修改my.cnf配置文件中的内容

复制代码
[client]
default-character-set=utf8

[mysqld]
character_set_server=utf8

3)初始化数据库

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

复制代码
[root@localhost ~]# cd /usr/src/mysql-5.6.36/
[root@localhost 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@localhost mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.6.36]# . /etc/profile  //立即生效

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

1.4、添加系统服务

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

复制代码
[root@localhost mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
[root@localhost mysql-5.6.36]# chmod -x /usr/local/mysql/bin/mysqld.sh

[root@localhost ~]# 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/yang.pid
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop

[Install]
WantedBy=multi-user.target

此时就可以使用systemctl工具来控制MySQL数据库服务了

复制代码
[root@yang ~]# systemctl start mysqld
[root@yang ~]# systemctl status mysqld 
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2023-12-12 16:57:27 CST; 8s ago
  Process: 10250 ExecStart=/usr/local/mysql/bin/mysqld.sh start (code=exited, status=0/SUCCESS)
 Main PID: 10379 (mysqld)

MySQL服务器默认通过TCP3306端口提供服务,通过编辑/etc/my.cnf配置文件中[mysqld]配置段的"port = 3306"行,可以更改监听端口

复制代码
[root@yang ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      10379/mysqld  
相关推荐
wypywyp1 分钟前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
Doro再努力16 分钟前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene21 分钟前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.28 分钟前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧37 分钟前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮1 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan0122 小时前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip2 小时前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
HalvmånEver3 小时前
Linux:线程互斥
java·linux·运维
番茄灭世神3 小时前
Linux应用编程介绍
linux·嵌入式