Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤
首先,介绍一下MySQL的几种安装方式
1、RPM、Yum 的安装方式:安装方便、安装速度快,无法定制
2、二进制:不需要安装,解压即可使用,不能定制功能
3、编译安装:可定制,安装慢。
编译安装中需要注意的是 5.5之前的编译方式是:./configure make && make install
而5.5之后则使用:cmake
企业中使用的安装方式:先编译,然后制作rpm,制作yum库,然后yum安装。
简单、速度快、可定制,比较复杂 制作时间长
MySQL的获取方式
软件包尽量去官方网站下载
不同的安装方式下载不同的包
Linux-Generic 代表的是二进制包
编译安装的话下载Source Code,表示源码包
博主的安装方式是编译安装方式,而二进制安装方式,就是将下载的二进制包解压后,即可
MySQL5.6安装与5.7安装过程中有哪些差异
5.6与5.7的编译安装差异主要是初始化不同
5.7初始化完成后,会自动设置一个初始密码,而5.6没有
MySQL5.6编译安装部署
1、安装依赖包
依赖包
yum install -y ncurses-devel libaio-devel
安装cmake
yum install cmake -y
2、创建管理用户
useradd -s /sbin/nologin -M -u 999 mysql
最好指定好uid,对管理数据库有好处
3、解压安装
找到下载的mysql包所在路径,然后进行解压,软件包尽量去官方网站下载
tar zxf mysql-5.6.36.tar.gz
解压完成后,使用 cd 进入解压好的mysql目录中,进行cmake
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36
-DMYSQL_DATADIR=/application/mysql-5.6.36/data
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/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
cmake安装过程做了什么呢?
(1)定制功能:存储引擎、字符集、压缩等
(2)定制安装位置、数据存放位置、文件位置
4、进行编译安装
make && make install
这两步完成后然后创建软连接,这样在使用mysql的时候方便
ln -s /application/mysql-5.6.36/ /application/mysql
5、初始化及配置数据库
这步做的主要是指定mysql的管理用户,程序路径,数据存储路径
如果不设置管理用户为mysql会导致启动报错
对于mysql的 my.cnf 配置文件参数优化与解释请参照:http://www.cnblogs.com/lyq863987322/p/8074749.html
cp /application/mysql/support-files/my*.cnf /etc/my.cnf ### 将配置文件复制到/etc下,可以不用复制
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
6、设置mysql目录权限
chown -R mysql.mysql /application/mysql/
将启动文件复制到/etc/init.d下,方便启动关闭管理,并启动
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
/etc/init.d/mysqld start
7、设置命令环境变量
这一步就是对于博主这种比较懒得人有好处了,以后在登陆的时候就不用在将mysql的详细路径打一遍了
echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile --- 将mysql命令路径添加到环境变量配置文件
tail -1 /etc/profile ----- 查看添加结果
source /etc/profile ----- 有结果了,执行这一步让环境变量生效
echo $PATH --- 不放心可以再检查一下生效了没有
mysql ----- 这样就可以直接登陆了
这样mysql5.6就已经安装完成了,默认的登陆是没有密码
设置/修改密码:
mysqladmin -u root password '123456'
mysql -uroot -p123456
MySQL5.7二进制安装部署
1、解压mysql二进制包
tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
2、将解压完的mysql目录移动到程序目录(自己设置放哪)
并且设置软连接
mv mysql-5.7.17-linux-glibc2.5-x86_64 /application/mysql-5.7.17
ln -s /application/mysql-5.7.17 /application/mysql
3、创建管理用户,并授权
useradd -s /sbin/nologin -M -u 999 mysql
chown -R mysql.mysql /application/mysql-5.7.17
4、初始化配置数据库
/application/mysql-5.7.17/bin/mysqld --initialize --user=mysql --basedir=/application/mysql-5.7.17 --datadir=/application/mysql-5.7.17/data
执行初始化的输出信息:最后一行有初始密码,一定要先记住
2017-12-20T08:08:00.604818Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-12-20T08:08:03.828187Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-12-20T08:08:04.164378Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-12-20T08:08:04.389472Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e7a07703-e55c-11e7-b24e-000c29c5641d.
2017-12-20T08:08:04.391108Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-12-20T08:08:04.827938Z 1 [Note] A temporary password is generated for root@localhost: *:vQq%O:E6dD
5、拷贝配置文件和启动文件
对于mysql的 my.cnf 配置文件参数优化与解释请参照:http://www.cnblogs.com/lyq863987322/p/8074749.html
cp /application/mysql-5.7.17/support-files/my-default.cnf /etc/my.cnf
cp /application/mysql-5.7.17/support-files/mysql.server /etc/init.d/mysqld
6、修改启动文件内容
因为启动文件中指定的mysql程序路径与安装路径不同,所以需要改过来
sed 's#/usr/local#/application#g' /application/mysql-5.7.17/bin/mysqld_safe /etc/init.d/mysqld -i
7、配置环境变量
echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
tail -1 /etc/profile
source /etc/profile
echo $PATH
8、安装完成修改密码登陆
[root@baba tools]# mysqladmin -uroot -p password '123456'
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@baba tools]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, 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>
安装完成
- C#执行XSL转换
- javascript:算法笔记
- spring boot 登录注册 demo (一)
- linux学习:CentOS、Mac上SSH的设置以及SceureCRT中的文件上传下载
- 中关村成为北京“高精尖”产业发展主阵地
- jquery-barcode:js实现的条码打印
- 页面json 格式化+颜色高亮
- Python 里 and、or 的计算规则
- Python中赋值、浅拷贝与深拷贝
- git 简易使用说明
- 开发篇-MySQL分区(一)
- Establishing SSL connection without server's identity verification is not recommended. According to
- Django-认证系统
- javascript:双链表-插入排序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Django3+websocket+paramiko实现web页面实时输出
- 【5分钟玩转Lighthouse】开车也能跑程序
- LeetCode74|有序矩阵中第K小的元素
- LeetCode73|根据字符出现频率排序
- LeetCode72|前K个高频元素
- LeetCode71|数组中第K个最大元素
- LeetCode70|最小K个数
- LeetCode69|消失的数字
- LeetCode68|和为s的两个数字
- LeetCode78|存在重复元素
- LeetCode77|排序链表
- LeetCode76|两颗二叉搜索树中的所有元素
- LeetCode75|二叉搜索树的第k大节点
- LeetCode86|只出现一次的数字II
- LeetCode85|只出现一次的数字III