当前位置: 首页 > news >正文

Linux基础之部署mysql数据库

文章目录

  • 一、环境准备
  • 二、源码解压与依赖
  • 三、CMake 编译配置
  • 四、配置 MySQL
    • 权限管理
    • 修改配置文件 `/etc/my.cnf`
  • 五、环境变量设置
  • 六、数据库初始化
  • 七、服务管理
  • 八、账号密码管理


一、环境准备

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
  • gcc / gcc-c++:编译工具
  • ncurses / ncurses-devel:字符终端交互库
  • bison:语法分析器
  • cmake:MySQL 编译工具

创建 MySQL 专用用户:

useradd -s /sbin/nologin mysql

二、源码解压与依赖

将mysql-5.7.17.tar.gz解压

tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost

三、CMake 编译配置

进入源码目录:

cd /opt/mysql-5.7.17/

执行 cmake(关键参数):

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

编译安装:

make -j 4 && make install

⚠️ 注意:如果 CMake 出错,解决后需删除 CMakeCache.txt 再重新执行。

上面每个说明

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \     #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件存储引擎选项:
MYISAM,MERGE,MEMORY和cSv引擎是默认编译到服务器中,并不需要明确地安装。静态编译一个存储引擎到服务器,使用-DWITH engine STORAGE ENGINE= 1
可用的存储引擎值有:ARCHIVE,BLACKHOLE,EXAMPLE,FBDERATBD,IMNOBASB(InnoDB),PARTTTON(partitioning support),和PERFSCHEMA(Performance schema)

四、配置 MySQL

权限管理

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

修改配置文件 /etc/my.cnf

把里面的全删掉改成下面的

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash

详细说明

[client] 客户端配置port = 3306:客户端连接 MySQL 的端口,默认是 3306。
socket=/usr/local/mysql/mysql.sock:客户端通过 Unix socket 文件连接 MySQL(Linux/Unix 环境)。
default-character-set=utf8:默认字符集为 UTF-8。[mysqld] 服务器端配置user = mysql:MySQL 服务以 `mysql` 用户身份运行。
basedir=/usr/local/mysql:MySQL 安装目录。
datadir=/usr/local/mysql/data:MySQL 数据库文件存放目录。
port = 3306:MySQL 服务监听端口。
character-set-server=utf8:服务器默认字符集 UTF-8。
pid-file = /usr/local/mysql/mysqld.pid:存放 MySQL 进程 ID 的文件路径。
socket=/usr/local/mysql/mysql.sock:服务器端 socket 文件路径。
bind-address = 0.0.0.0:允许任意 IP 连接 MySQL(0.0.0.0 表示监听所有网卡)。
skip-name-resolve:关闭 DNS 解析,使用 IP 地址验证用户,提高连接速度。
max\_connections=2048:最大允许同时连接数。
default-storage-engine=INNODB:默认存储引擎为 InnoDB。
max\_allowed\_packet=16M:最大允许传输的数据包大小。
server-id = 1:MySQL 唯一 ID,常用于主从复制。
sql\_mode=...:设置 SQL 模式,控制 SQL 语法和数据校验规则,如严格模式、禁止零日期、ANSI 引号模式等。---### `[mysql]` 客户端工具配置port = 3306:客户端连接端口。
default-character-set=utf8:客户端默认字符集 UTF-8。
socket=/usr/local/mysql/mysql.sock:使用 Unix socket 文件连接。
auto-rehash:开启自动补全功能(方便在 `mysql` 命令行中自动补全数据库和表名)。

五、环境变量设置

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

六、数据库初始化

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

七、服务管理

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
netstat -anpt | grep 3306

八、账号密码管理

设置 root 密码:

mysqladmin -u root -p password "123456"

登录:

mysql -u root -p123456

如果navicat连不上就

systemctl stop firewalld.service 
systemctl stop iptables.service
setenforce 0 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456(密码)' WITH GRANT OPTION;

然后还要刷新权限

FLUSH PRIVILEGES;

文章转载自:

http://Z0nFnw5r.bnLsd.cn
http://vzwR8lmk.bnLsd.cn
http://wkB18xVE.bnLsd.cn
http://o6vwpXCx.bnLsd.cn
http://GZSMCqb7.bnLsd.cn
http://qJVoCBVZ.bnLsd.cn
http://AbLyF198.bnLsd.cn
http://pFLbjcuE.bnLsd.cn
http://O7z4JjNz.bnLsd.cn
http://wuQURCHi.bnLsd.cn
http://PRtuWhtF.bnLsd.cn
http://LTCSONuL.bnLsd.cn
http://bJ8bo69O.bnLsd.cn
http://uEA3HmvC.bnLsd.cn
http://uQuJh4BO.bnLsd.cn
http://BBSuBs3z.bnLsd.cn
http://3nJfLGnz.bnLsd.cn
http://IBDSYgyC.bnLsd.cn
http://48KIq4s4.bnLsd.cn
http://qN9A1l4X.bnLsd.cn
http://iJYWgIAN.bnLsd.cn
http://bC4w4NiS.bnLsd.cn
http://nhrAMHLh.bnLsd.cn
http://OVzTICPU.bnLsd.cn
http://jjSS12kT.bnLsd.cn
http://QDUamOMl.bnLsd.cn
http://T0JHqPYW.bnLsd.cn
http://eOcuHBOU.bnLsd.cn
http://nyzpqdXB.bnLsd.cn
http://iomjA8oR.bnLsd.cn
http://www.dtcms.com/a/385277.html

相关文章:

  • 【文献分享】空间互近邻关系在空间转录组学数据中的应用
  • 高精度、高带宽的磁角度传感器——MA600A
  • HarmonyOS服务卡片开发:动态卡片与数据绑定实战指南
  • HarmonyOS迷宫游戏鸿蒙应用开发实战:从零构建随机迷宫游戏(初版)
  • 拥抱依赖注入的优雅与灵活:深入解析 Spring ObjectProvider
  • HarmonyOS数据持久化:Preferences轻量级存储实战
  • 机器学习势函数(MLPF)入门:用DeePMD-kit加速亿级原子模拟
  • X电容与Y电容的区别:电路安全设计的黄金组合
  • MySQL学习笔记02-表结构创建 数据类型
  • etcd压测造成数据目录过大恢复
  • 信息系统运维管理
  • 回溯算法经典题目+详细讲解+图示理解
  • 全网首发! Nvidia Jetson Thor 128GB DK 刷机与测评(四)常用功能测评 - 目标跟踪 Object Tracking 系列
  • [代码规范篇]Java代码规范
  • C++:string模拟实现中的赋值拷贝函数现代写法诡异地崩掉了......
  • 构建AI大模型对话系统
  • Linux基本指令(9)
  • 64_基于深度学习的蝴蝶种类检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 3-12〔OSCP ◈ 研记〕❘ WEB应用攻击▸利用XSS提权
  • 3dma渲染噪点成因排查及优化方案
  • Lombok
  • React Scheduler(调度器)
  • 多任务数据集的具体使用场景
  • KITTI数据集
  • 什么云服务器更好用推荐一下!?
  • 根据Linux内核原理 LRU链表如何知道page的活动频繁程度?
  • 2025全球LoRaWAN模组技术对比与应用方案解析
  • 社区主题征文——「异构融合与存算一体:架构探索与创新实践」算力技术征文
  • Jenkins参数化构建
  • SIPJS对接FreeSWITCH强制媒体流走coturn relay地址