在Linux中部署并初始化MySQL的多种方式
前言
MySQL是常用的关系型数据库,具有以下特点:
- 1、开源,不需要支付额外的费用即可使用
- 2、支持包括Windows/Linux在内的多个操作系统
- 3、支持多种语言,包括中文编码GB 2312、BIG5,日文的shift_JIS
- 4、为包括C、C++、java、python、PHP在内的多种编程语言提供了API
- 5、支持多种存储引擎,例如MyISAM、InnoDB
- 6、使用标准的SQL语言进行操作
- 7、支持多线程,充分利用CPU资源
- 8、存储数据量大,32位系统表文件最大可支持4GB,64位系统表文件最大可支持8TB
- 9、可以定制,采用了GPL协议,通过修改源码来开发自己的MySQL系统
基于以上特点,MySQL被广泛用于学习与实际工作中,本篇文章介绍在Linux系统中使用多种方式部署并初始化MySQL数据库,包括源码安装、rpm安装以及yum安装。
实验环境介绍
1、最小化安装的4核4g Centos7.6 虚拟机
2、XShell远程连接工具
3、本文章中使用的所有源码包、rpm包的下载地址:https://www.mysql.com/downloads/
一、源码包安装MySQL
相较于其他两种安装,源码安装较繁琐,但优势在于可以在安装时以及初始化阶段将需要设置的参数一次性设置到位
以下是安装过程
1、配置MySQL&编译安装
一些版本的Linux系统中默认存在mariadb组件,该组件与安装MySQL是冲突的,在安装MySQL之前必须把该组件卸载掉,其中 --nodeps可以指定只删除mariadb-libs,不删除其依赖关系
1 2 |
|
接下来为MySQL安装依赖,这些依赖包在本地yum源中均存在,无需配置其他网络yum源。
1 |
|
将依赖包上传至Linux系统中需要安装命令lrzsz,该命令可实现Windows拖动文件上传至Linux系统中
1 |
|
之后将在MySQL官网上下载的源码包拖动上传至Linux系统
解压源码包到指定路径下,解压完成后切换到该路径下
1 2 |
|
接着进行预编译,有别于其他软件,MySQL的预编译使用的是cmake命令,复制以下代码
1 |
|
#解释一下上述代码
-DCMAKE_INSTALL_PREFIX —指定安装路径
-DMYSQL_DATADIR —数据目录,即MySQL的数据存放路径
-DSYSCONFDIR —配置文件所在路径
-DWITH_INNOBASE_STORAGE_ENGINE/-DWITH_MYISAM_STORAGE_ENGINE —启用两种存储引擎
-DDEFAULT_CHARSET/-DDEFAULT_COLLATION —指定字符集
-DENABLED_LOCAL_INFILE —启用或禁用LOAD DATA LOCAL INFILE 语句
-DMYSQL_TCP_PORT —指定服务端口号
-DMYSQL_UNIX_ADDR —指定Unix套接字文件的路径
-DWITH_INNODB_MEMCACHED —启用或禁用InnoDB 存储引擎对 Memcached 的支持
-DWITH_BOOST —指定boost库
运行完上述代码
如果出现报错,检查一下依赖包是否都齐全
接着进行编译安装
1 |
|
其中-j选项表示多个线程进行编译,这样可以节省时间
2、初始化数据库
安装完成后,运行如下代码
1 2 3 4 5 6 7 8 9 |
|
解释一下上述代码
groupadd mysql #为MySQL创建一个组来管理软件的运行
useradd -r-g mysql -s /bin/false mysql #为MySQL创建一个用户来管理软件的运行
cd /usr/local/mysql #切换到MySQL的安装路径
mkdir -p /usr/local/mysql/data #创建安装前指定的数据存放目录
mkdir -p /usr/local/mysql/etc #创建安装前指定的配置文件所在目录
mkdir -p /usr/local/mysql/tmp #创建临时文件目录
mkdir -p /usr/local/mysql/logs #创建日志文件目录
vim /usr/local/mysql/etc/my.cnf #创建编辑配置文件,默认也存在配置文件但其中内容较少
将以下的配置文件粘贴进去
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
|
初始化最后一步,按照配置文件的内容来创建数据库
1 |
|
3、配置环境变量
为MySQL数据库配置环境变量
1 2 3 |
|
复制配置文件到init.d目录使系统能够使使用systemctl命令管理MySQL
1 2 3 4 5 6 7 |
|
设置软链接,把MySQL的命令都放在默认的命令里面,使得可以在系统的任何地方使用MySQL的命令
1 |
|
自MySQL5.7版本起,MySQL初始有默认密码,存放在日志文件当中
