Linux 高级管理,安装MySQL数据库

1.准备工作

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

复制代码
[root@node01 ~]# rpm -q mysql-server mysql

挂载 ,安装光盘自带的ncurses-devel包

复制代码
[root@node01 ~]# mount /dev/cdrom /mnt/  //挂载
[root@node01 ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 

创建mysql文件夹,切换到该目录,安装FTP

复制代码
[root@node01 ~]# mkdir mysql
[root@node01 ~]# cd mysql/
[root@node01 mysql]# rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm

连接ftp服务器

复制代码
[root@node01 mysql]# ftp 172.16.37.13
Connected to 172.16.37.13 (172.16.37.13).
220 Serv-U FTP Server v15.1 ready...
Name (172.16.37.13:root): 135 //输入账号
331 User name okay, need password.
Password:  //输入密码
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.

切换至 软件下载/y2/y2c

复制代码
ftp> cd 软件下载/y2/y2c

查看目录下的内容

复制代码
ftp> ls

获取 cmake-2.8.6.tar.gz 压缩包

复制代码
ftp> get cmake-2.8.6.tar.gz

获取 mysql-5.6.36.tar.gz 安装包

复制代码
ftp> get mysql-5.6.36.tar.gz

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

复制代码
[root@node01 mysql]# tar zxf cmake-2.8.6.tar.gz  //解压这个安装包到当前目录
[root@node01 mysql]# cd cmake-2.8.6/  //切换目录
[root@node01 cmake-2.8.6]# ./configure 
复制代码
[root@node01 cmake-2.8.6]# gmake
复制代码
[root@node01 cmake-2.8.6]# gmake install

2.源码编译及安装

1)创建运行用户

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

复制代码
[root@node01 mysql]# groupadd mysql
[root@node01 mysql]# useradd -M -s /sbin/nologin mysql -g mysql

2)解包

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

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

3)配置

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

复制代码
[root@node01 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@node01 mysql-5.6.36]# make
[root@node01 mysql-5.6.36]# make install

3.安装后的其他调整

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

代码如下。

复制代码
[root@node01 mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql/

2)建立配置文件

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

复制代码
[root@node01 mysql-5.6.36]# rm -rf /etc/my.cnf
[root@node01 mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf

3)初始化数据库

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

复制代码
[root@node01 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@node01 mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@node01 mysql-5.6.36]# . /etc/profile

4.添加系统服务

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

复制代码
[root@node01 mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
[root@node01 mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh
[root@node01 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/node01.pid  //指定PID文件位置,默认为"主机名.pic1"。node01为主机名
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@node01 ~]# systemctl start mysqld
[root@node01 ~]# systemctl enable mysqld

[root@node01 ~]# systemctl status mysqld
复制代码
[root@node01 ~]# netstat -anpt | grep mysql

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

相关推荐
clorinda4 小时前
MySQL 入门笔记:DQL 基础查询与常用函数
adb
Code额6 小时前
基于 SQLAlchemy 2.x,面向 MySQL 数据库的从入门到精通实战教程(2)
数据库·sql·mysql·adb·ai
游戏开发爱好者821 小时前
WebSocket 抓包怎么查看内容?从握手到消息帧完整解读
网络协议·计算机网络·网络安全·ios·adb·https·udp
00后程序员张2 天前
SSL Pinning 抓包抓不到明文?绕过证书固定的几种方案
网络协议·计算机网络·网络安全·ios·adb·https·udp
没文化的阿浩3 天前
【MySQL】数据类型
android·mysql·adb
黄毛火烧雪下3 天前
智能眼镜无线adb调试
adb
游戏开发爱好者84 天前
带签名时间戳接口的重放与压力测试实战,用动态值在发送前现算签名
网络协议·计算机网络·网络安全·ios·adb·https·压力测试
Lethehong6 天前
MySQL迁移如何做到零改造?四层兼容方案详解
数据库·mysql·adb
陈卿诺语8 天前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
sql·mysql·adb
2501_915921439 天前
抓包鹰 Traceeagle 解除证书绑定,SSL Pinning 解除
网络·网络协议·网络安全·ios·adb·https·ssl