MySql源码安装

文章目录

主要分为三部:生成、编译 编译安装

编译之前的环境配置
bash 复制代码
#安装依赖包
[root@db01 ~]#  yum install -y ncurses-devel libaio-devel  cmake gcc wget
#创建数据库使用用户
[root@db01 ~]#  useradd -r -s /sbin/nologin mysql
#下载源数据
[root@db01 ~]#  wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.38.tar.gz
#解压源数据包
[root@db01 ~]#  tar xf mysql-5.6.38.tar.gz
使用cmake生产makefile,用于编译安装

此过程时间会比较长,一般在十几分钟左右

bash 复制代码
[root@db01 mysql-5.6.38]#  cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.6.38 \
-DMYSQL_DATADIR=/app/mysql-5.6.38/data \
-DMYSQL_UNIX_ADDR=/app/mysql-5.6.38/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

# -DCMAKE_INSTALL_PREFIX 指定数据的源目录  会自动创建
# -DMYSQL_DATADIR 指定数据库的数字写到哪里
# -DDEFAULT_CHARSET 指定使用的语言格式

PS:结束之后在mysql-5.6.38查看会有makefile文件
使用make进行编译,make install进行安装
bash 复制代码
[root@db01 mysql-5.6.38]# make && make install
注意看提示信息,不可以有error出现,到这里就安装好了

#创建软连接方便后续的升级管理
[root@db01 mysql-5.6.38]# ln -s /app/mysql-5.6.38/ /app/mysql
[root@db01 app]# ls
mysql  mysql-5.6.38
#创建mysql启动时需求的套接字文件 存放pid
[root@db01 app]# mkdir /app/mysql-5.6.38/tmp
mysql初始化

初始化使用工具,在/app/mysql-5.6.38/scripts/下

bash 复制代码
#进行初始化
[root@db01 app]# cd mysql-5.6.38/scripts/
[root@db01 scripts]# ls
mysql_install_db
#以下初始化命令 初始化成果之后一定要出现2个OK
[root@db01 scripts]# ./mysql_install_db --basedir=/app/mysql/ --datadir=/app/mysql/data --user=mysql
#给文件归属权限到mysql
chown -R mysql.mysql /app/
#--basedir= 指定源目录  这里指像已经做软连接的目录
#--datadir= 指定数据存放位置
#--user= 指定数据库使用用户
启动mysql****
bash 复制代码
#进入mysql的目录,找到support-files下,是mysql初始化自动生成的管理脚本
[root@db01 mysql-5.6.38]# ls
bin      data  include  man     mysql-test  scripts  sql-bench      tmp
COPYING  docs  lib      my.cnf  README      share    support-files
#复制启动脚本使用
[root@db01 mysql-5.6.38]# cp support-files/mysql.server /etc/init.d/mysqld
#/etc/init.d/ 是系统自动启动的脚本,复制过去 mysqld是可以自定义的服务名字
#给脚本执行权限
[root@db01 mysql-5.6.38]# chmod 700 /etc/init.d/mysqld
#复制mysql启动时所需要的配置文件my.cnf 
[root@db01 mysql-5.6.38]# cp support-files/my-default.cnf /etc/my.cnf
y 覆盖

#启动mysql
[root@db01 mysql-5.6.38]# /etc/init.d/mysqld start
my.cnf 和 mysqld文件不需要进行修改,这些文件的配置内容是依据我们初始化的数据自动已经生成了,复制了就可以继续使用
设置mysql的环境变量
bash 复制代码
[root@db01 ~]# vim /etc/profile
#添加以下的内容
export PATH=/app/mysql/bin:$PATH
#加载环境变量
[root@db01 ~]# source /etc/profile
#检查环境变量是否生效
[root@db01 ~]# echo $PATH
/app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
登入mysql,设置密码

mysql是C/S架构的,有服务端和客户端,可以在不同的主机上,也可以在同一台主机上

bash 复制代码
#使用客户端进行连接mysql,完成数据的增删改查
语法: mysql -uroot -p
[root@db01 ~]# mysql -uroot -p
Enter password: #默认是空密码的,直接回车就可以进入
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.38 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> Ctrl-C -- exit!
Aborted
mysql安全配置

使用mysqladmin进行修改配置密码

bash 复制代码
mysqladmin -urrot -p password
#设置新密码
[root@db01 ~]# mysqladmin -uroot -p password
Enter password:   输入默认密码 直接回车
New password:     输入新密码
Confirm new password:  再次输入新密码
[root@db01 ~]# mysql -uroot -p
Enter password:  输入设置的新密码进入
相关推荐
一瓢西湖水5 小时前
列式数据库-以clickHouse为例
数据库·clickhouse
Elastic 中国社区官方博客5 小时前
使用 Elastic Cloud Serverless 扩展批量索引
大数据·运维·数据库·elasticsearch·搜索引擎·云原生·serverless
liulanba5 小时前
AI Agent技术完整指南 第一部分:基础理论
数据库·人工智能·oracle
逆天小北鼻5 小时前
Oracle 服务端与客户端的核心区分要点
数据库·oracle
2501_946242935 小时前
MPV-EASY Player (MPV播放器) v0.41.0.1
数据库·经验分享·云计算·计算机外设·github·电脑·csdn开发云
MySQL实战6 小时前
Redis 7.0 新特性之maxmemory-clients:限制客户端内存总使用量
数据库·redis
VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue校园社团管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
luoluoal7 小时前
基于python的小区监控图像拼接系统(源码+文档)
python·mysql·django·毕业设计·源码
北亚数据恢复7 小时前
虚拟机数据恢复—ESXi虚拟机下SqlServer数据库数据恢复案例
数据库
susu10830189117 小时前
使用navicat创建事件event报错You have an error in your SQL syntax
数据库·sql