安装MySQL5.7.26教程图解

1、安装mysql所需的yum源

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libgcrypt libtool bison

2、创建Mysql组以及mysql用户

#创建MySQL组
groupadd mysql
#创建MySQL用户
useradd -gmysql mysql

创建安装目录

mkdir /opt/server/mysql

解压、编译、安装MySQL

cd /opt/package/
在当前目录解压mysql安装包:
tar -zxvf mysql-boost-5.7.26.tar.gz
进入mysql待安装文件目录下:
cd mysql-5.7.26/
进行安装mysql-5.7.26
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/server/mysql \
-DMYSQL_DATADIR=/opt/server/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=6603 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/opt/server/mysql/mysql.sock \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_bin \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled\
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=./boost/boost_1_59_0
使用cmake命令安装软件时,报如下错误:(没有遇到就直接跳过)
CMake Error at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED):
CMake 3.0.2 or higher is required. You are running version 2.8.12.2
-- Configuring incomplete, errors occurred!
提示CMake版本低,需要更高版本。
解决方法:
1、移除旧版本:
  yum remove cmake
2、下载新版本
(1)、下载:
https://cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
(2)、解压:
tar -zxvf cmake-2.8.12.2.tar.gz -C /opt/server/
mv /opt/server/cmake-2.8.12.2 /opt/server/cmake
(3)、安装cmake,先进入解压后的cmake目录
进入该目录下
cd /opt/server/cmake
运行文件
./bootstrap
生成编译文件
gmake
安装
make install
(4)、配置环境变量
修改配置文件:vim /etc/profile
在最后面加入:
export CMAKE_HOME=/opt/server/cmake
export PATH=$PATH:$CMAKE_HOME/bin
:wq 保存退出
然后运行:source /etc/profile
(5)、检查cmake版本:
cmake -version
进行编译mysql-5.7.26
make -j `grep processor /proc/cpuinfo | wc -l` && make install
  1. 设置MySQL权限、配置服务
1>首先进入目录:
cd /opt/server/mysql/
2>复制启动文件:
cp ./support-files/mysql.server /etc/init.d/mysql
修改配置文件安装路径
vim /etc/init.d/mysql
修改地址:
basedir=/opt/server/mysql
datadir=/opt/server/mysql/data
赋予可执行权限:chmod +x /etc/init.d/mysql
添加为服务: chkconfig --add mysql
  1. 修改配置文件
文件夹授权
mkdir -p /opt/server/mysql/logs
mkdir -p /opt/server/mysql/logbin
mkdir -p /opt/server/mysql/tmp
chown -R mysql:mysql /opt/server/mysql
chmod +x /opt/server/mysql
1>vim /etc/my.cnf 或 cat > /etc/my.cnf <<EOF
cat > /etc/my.cnf <<EOF
# 客户端设置,即客户端默认的连接参数
[client]
# 默认连接端口
port = 6603
# 程序与mysqlserver处于同一台机器,发起本地连接时可用
socket = /opt/server/mysql/mysql.sock
# 数据库字符集
default_character_set = utf8mb4
# 服务端基本设置
[mysqld]
# 表示是本机的序号为1,一般来讲就是master的意思
server_id = 1
# MySQL监听端口
port = 6603
# 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
socket = /opt/server/mysql/mysql.sock
# pid文件所在目录
pid_file = /opt/server/mysql/mysql.pid
# 使用该目录作为根目录(安装目录)
basedir = /opt/server/mysql
# 数据文件存放的目录
datadir = /opt/server/mysql/data
# MySQL存放临时文件的目录
tmpdir = /opt/server/mysql/tmp
# 服务端默认编码(数据库级别)
character_set_server = utf8mb4
# 服务端默认的比对规则,排序规则
collation_server = utf8mb4_bin
# 错误日志路径
log_error = /opt/server/mysql/logs/mysql_err.log
# 指定是否开启慢查询日志
slow_query_log = 1
# 指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name_slow.log
slow_query_log_file = /opt/server/mysql/logs/slow.log
# 设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志
long_query_time = 8
# 参数 log_output 指定了慢查询输出的格式,默认为 FILE,你可以将它设为 TABLE,然后就可以查询 mysql 架构下的 slow_log表了
log_output = TABLE
# 如果运行的SQL语句没有使用索引,则mysql数据库同样会将这条SQL语句记录到慢查询日志文件中
log_queries_not_using_indexes
# 开启二进制日志功能,binlog数据位置
log_bin = /opt/server/mysql/logbin/mysql_bin
# 混合模式复制
binlog_format = mixed
# 超过7天的binlog删除
expire_logs_days = 7
# binlog每个日志文件大小
max_binlog_size = 1G
# 启动 mysql,不启动复制
skip_slave_start
# 跳过外部锁定,防止文件目录不可用,该选项默认开启
skip_external_locking
# 禁用域名DNS查找,不能在mysql的授权表中使用主机名或域名,只能使用IP或localhost
skip_name_resolve
# 表名的大小写敏感选项,默认为0,即开启大小写敏感,1为大小写不敏感,看需求设置
lower_case_table_names = 1
# MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值
max_connections = 3000
# 指定MySQL可能的连接数量。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用
back_log = 1024
# 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST
max_connect_errors = 6000
# mysql支持的基本语法及校验规则
sql_mode = 'ANSI_QUOTES,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能
key_buffer_size = 256M
# 表描述符缓存大小,可减少文件打开/关闭次数
table_open_cache = 1024
# MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段
sort_buffer_size = 256M
# 读查询操作所能使用的缓冲区大小。和 sort_buffer_size 一样,该参数对应的分配内存也是每连接独享!
read_buffer_size = 32M
# 线程池缓存大小
thread_cache_size = 64
# MySQL的随机读缓冲区大小
read_rnd_buffer_size = 32M
# 指定MySQL 查询缓冲区的大小
query_cache_size = 64M
# 明确时间戳默认null方式
explicit_defaults_for_timestamp = true
# 指定单个查询能够使用的缓冲区大小,默认1M
query_cache_limit = 5M
# 默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:4000M;ibdata2:2000M:autoextend
# InnoDB 用来高速缓冲数据和索引内存缓冲大小。 更大的设置可以使访问数据时减少磁盘 I/O。
innodb_buffer_pool_size=2G
# 此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1-8M之间
innodb_log_buffer_size = 4M
# 此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间
innodb_log_file_size = 32M
# 为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
innodb_log_files_in_group = 3
# innodb主线程刷新缓存池中的数据,使脏数据比例小于90%
innodb_max_dirty_pages_pct = 90
# InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。
innodb_lock_wait_timeout = 120
# 批量插入缓存大小, 这个参数是针对MyISAM存储引擎来说的。适用于在一次性插入100_1000+条记录时, 提高效率。默认值是8M。可以针对数据量的大小,翻倍增加。
bulk_insert_buffer_size = 8M
# MyISAM设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区
myisam_sort_buffer_size = 16M
# 如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出
myisam_max_sort_file_size = 10G
# 如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内)
myisam_repair_threads = 1
# 服务器关闭交互式连接前等待活动的秒数。默认值:28800秒(8小时)
interactive_timeout = 28800
# 限制server接受的数据包大小;指代mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小
max_allowed_packet = 256M
 
[mysqldump]
# 支持较大数据库的转储,在导出非常巨大的表时需要此项。增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。
# 例如,仅当你发出长查询或mysqld必须返回大的结果行时mysqld才会分配更多内存。
# 该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。
# 如果你正是用大的BLOB值,而且未为mysqld授予为处理查询而访问足够内存的权限,也会遇到与大信息包有关的奇怪问题。
# 如果怀疑出现了该情况,请尝试在mysqld_safe脚本开始增加ulimit _d 256000,并重启mysqld。
quick
# 限制server接受的数据包大小;指代mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小
max_allowed_packet = 256M
# TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行
net_buffer_length = 16384
 
[mysql]
# auto_rehash是自动补全的意思
auto_rehash
 
# isamchk数据检测恢复工具
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
EOF
2>初始化数据库
cd /opt/server/mysql/
bin/mysqld --initialize --user=mysql
# 查看MySQL初始密码
grep 'temporary password' /opt/server/mysql/logs/mysql_err.log
  1. 启动MySQL服务
service mysql start 或 /etc/init.d/mysqld start
然后进入命令行界面:
bin/mysql -uroot -p
输入密码,初始化产生的密码。进入界面
#修改root密码
mysql> set password for 'root'@'localhost'=password('root');
#立即生效
mysql> flush privileges;
#退出
mysql> quit;
  1. 配置环境变量
修改配置文件:vim /etc/profile
在最后面加入:
export MYSQL_HOME=/opt/server/mysql
export PATH=$PATH:$MYSQL_HOME/bin
立即生效:
source /etc/profile
让配置文件生效,输入mysql -u root -p ,出现输入密码就代表环境变量配置成功。
  1. 将MySQL设置为开机自启动
查看服务列表:  chkconfig --list
看到3、4、5状态为开或者为 on 则表示成功。
如果是 关或者 off 则执行一下:chkconfig --level 345 mysql on
重启计算机:reboot
再次查看服务列表或者查看6603端口号
netstat -na | grep 6603
启动成功!!
  1. 创建数据库以及用户
#以root用户重新登录数据库
mysql -uroot -proot
#查看可用数据库的列表
mysql> show databases;
#创建数据库实例
#create database “数据库名称”
mysql> create database datadb;
#设置字符集为utf8mb4
mysql> alter database datadb default character set utf8mb4 collate utf8mb4_bin;
④、提交事务
mysql> commit;
#为数据库实例创建用户
mysql> use datadb;
Database changed
#create user 用户名 identified by '密码;%表示允许远程登录,改成ip就是ip登录
mysql> create user 'test'@'%' identified by '123456';
#给test用户授予datadb数据库的所有权限(可远程登陆)
#grant all on 数据库.* to 用户名;(with grant option这个选项表示该用户可以将自己拥有的权限授权给别人)
mysql> grant all privileges on datadb.* to 'test'@'%'with grant option;
#立即生效
mysql> flush privileges;
#提交事务
mysql> commit;
#查看用户的权限
mysql> show grants for 'test'@'%';
  1. 下图错误是因为MySQL的root用户没有localhost登录权限
#以root用户重新登录数据库
mysql -uroot -proot
mysql> use mysql;
Database changed
#允许远程机器连接
mysql> update user set host = '%' where user ='root';
#立即生效
mysql> flush privileges;
#更新用户密码
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root';
#提交事务
mysql> commit;
#从user表中,选择出host列和user列的数据
mysql> select user,host from user;
然后再重新登录测试,连接成功^_^
彩蛋:查看mysql版本(V是大V)
[root@test /]# mysql -V
 

安装MySQL5.7.26教程图解的更多相关文章

  1. Ubuntu14.04编译安装mysql5.6.26

    Ubuntu14.04编译安装mysql5.6.26 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libncurses5-d ...

  2. linux 安装 mysql-5.6.26

    linux安装mysql-5.6.26 查看工具:winscp 下载地址 http://mirrors.sohu.com/mysql/MySQL-5.6/ 文件: mysql-5.6.26-linux ...

  3. CentOS6、7安装MySQL5.7全教程

    CentOS6.7安装MySQL5.7全教程 做开发总得用到数据吧,Linux作为服务器,总得有一个数据库来存储测试用的数据,所以呢,这里附上CentOS6.7安装MySQL5.7的教程喔~ 用到的工 ...

  4. Linux上centOs6+安装mysql5.7详细教程 - 前端小鱼塘

    https://coyhom.github.io/ 人类的本质是复读机,作为一个非linux专业人员学习linux最好的办法是重复 环境centos6.5 版本5.7 1: 检测系统是否自带安装mys ...

  5. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  6. 安装Redis5.0.8教程图解

    文档:安装Redis5.0.8教程图解.note 链接:http://note.youdao.com/noteshare?id=737620a0441724783c3f8ef14ab8a453& ...

  7. CentOS 6.5 源码安装MySQL5.6.26

    1:下载安装cmake (mysql5.5以后是通过cmake来编译的) 2:创建mysql的安装目录及数据库存放目录 #mkdir /usr/mysql                 //安装my ...

  8. Centos7.3安装Mysql5.7.26(glibc即linux通用版)

    1.检查防火墙是否关闭 //查看防火墙状态 firewall-cmd --state //关闭防火墙 systemctl stop firewalld systemctl disable firewa ...

  9. linux centos7 安装mysql-5.7.17教程(图解)

    1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql 2下 ...

随机推荐

  1. Swift-技巧(六)设置按钮状态并更改

    摘要 按钮是一个宝藏控件,可以在设置的时候就对不同的状态添加图片.文本,甚至更改背景.在不同的展示场景中更改到不同的状态显示就好.恰恰是如何更改状态着实让我懵了一阵,所以记录一下过程.如果没有兴趣了解 ...

  2. [hdu6134]Battlestation Operational

    1 #include<bits/stdc++.h> 2 using namespace std; 3 #define mod 1000000007 4 #define N 1000005 ...

  3. JDK源码阅读(7):ConcurrentHashMap类阅读笔记

    ConcurrentHashMap public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implement ...

  4. electron另一种运行方式

    编写helloword 全局安装软件  npm install -g electron 快速编写html  html:5 完整代码和流程: 1.index.html  <!DOCTYPE htm ...

  5. UOJ #129 / BZOJ 4197 / 洛谷 P2150 - [NOI2015]寿司晚宴 (状压dp+数论+容斥)

    题面传送门 题意: 你有一个集合 \(S={2,3,\dots,n}\) 你要选择两个集合 \(A\) 和 \(B\),满足: \(A \subseteq S\),\(B \subseteq S\), ...

  6. 洛谷 P4437 [HNOI/AHOI2018]排列(贪心+堆,思维题)

    题面传送门 开始 WA ycx 的遗产(bushi 首先可以将题目转化为图论模型:\(\forall i\) 连边 \(a_i\to i\),然后求图的一个拓扑序 \(b_1,b_2,\dots b_ ...

  7. pcm-pcie 解析

    简介 pcm 全称为 Performance Counter Monitor,该项目是针对 intel 平台处理器的资源利用率进行监控的工具.在现代 Intel 处理器已经提供了监视处理器内部性能事件 ...

  8. 在windows下使用shell,运行shell脚本

    在Windows操作系统下运行Shell脚本,缺少的只是一个Git软件.其下载路径为Git - Downloading Package. 安装之后,将安装路径下的bin文件夹的路径作为环境变量.于是我 ...

  9. MapReduce05 框架原理OutPutFormat数据输出

    目录 4.OutputFormat数据输出 OutputFormat接口实现类 自定义OutputFormat 自定义OutputFormat步骤 自定义OutputFormat案例 需求 需求分析 ...

  10. MapReduce01 概述

    MapReduce 概述 目录 MapReduce 概述 1.定义 2.优缺点 优点 缺点 3.MapReduce核心思想 4.MapReduce进程 5.官方 WordCount 源码 6.常用数据 ...