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:  输入设置的新密码进入
相关推荐
云和数据.ChenGuang2 小时前
openEuler 上安装与部署 Redis 运维教程
运维·数据库·redis·运维工程师·运维技术
妮妮喔妮2 小时前
Redis Cluster故障处理机制
java·数据库·redis
Elastic 中国社区官方博客2 小时前
AutoOps 实际应用:调查 ECK 上的 Elasticsearch 集群性能
大数据·数据库·elasticsearch·搜索引擎·全文检索
欧克小奥2 小时前
Redis单节点分片集群实现
数据库·redis·缓存
霑潇雨2 小时前
题解 | 统计每个产品的销售情况
数据库·sql·笔试·牛客
不穿格子的程序员2 小时前
Redis篇1——Redis深度剖析:从 5 种对象到 6 大底层结构
数据库·redis·缓存·redis五大数据类型·redis六大数据结构
Logic1012 小时前
《Mysql数据库应用》 第2版 郭文明 实验2 数据查询操作核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
小满、2 小时前
Redis:安装、主从复制、Sentinel 哨兵、Cluster 集群
数据库·redis·redis cluster·redis sentinel·redis 主从复制
白帽子黑客杰哥2 小时前
CTF Web题目常用考点与解题技巧合集
前端·数据库·web安全·网络安全·ctf·信息收集