文档章节

二进制方式 安装MySQL

star_glm
 star_glm
发布于 2016/06/22 17:57
字数 1552
阅读 23
收藏 1

注:于 2017年6月份 更新了该文章

一、mysql的各个文件的作用 

目录 目录解释
bin, scripts mysqld server, client and utility programs(实用程序)
data Log files, databases(存放日志文件,数据库)
docs MySQL manual in Info format(文档)
man Unix manual pages(说明书)
include Include (header) files
lib Libraries (库)
share Miscellaneous support files, including error messages, sample configuration files, SQL for database installation(各种支持文件:错误信息,示例配置文件,SQL数据库安装)
sql-bench Benchmarks(基准)

 

二、使用二进制方式安装MySQL     

1、获取MySQL安装包

从官网下载MySQL安装包:http://dev.mysql.com/downloads/

版本:GA 、DMR 、RC 、Beta

  • 一般,使用GA版本安装。
  • DMR:开发版,未完善完整。
  • Beta:在DMR的基础上,进一步完善,但仍然不完整,未正式公布。

在官网下载MySQL时,可以留意下MD5:

  • MD5 文件作用:校验下载的软件 是否安全、是否有损坏。
  • 命令:md5sum   软件安装包名
  • 在线上使用,下载到软件安装包,最好校验一下,避免安装失败。

2、安装前准备 之 配置Linux环境

(1) 关闭numa

  • 即使是多实例,也建议关闭!
  • 关闭numa,需要重启Linux系统,若不想重启Linux,可以在启动mysql之前 执行:
    • numactl  -interleave=all  /path/mysqld  --defaults-file=/path/my.cnf  &
  • 查看numa是否关闭:
    • numactl  --show    或     numactl  --hardware

(2) 限制设置 /etc/security/limits.conf

主要的参数:

① open files

  • 针对的错误:too many open file:24 或 os error code 11:resource temporarily unavailable
  • 通过配置参数来避免以上两个错误:
    • 在/etc/rc.local 文件,配置  ulimit  -Sn  65535  和  ulimit  -Su  10000
    • 或者 在 limit.conf文件中添加四个参数:
      • hard   nproc  65535
      • soft     nproc  65535
      • hard   nofile   65535
      • soft     nofile   65535

② max user processes

(3) swap

要么不分配swap,要么最多分配4G!

查看swap 存放的位置:sysctl  -a |grep swap

建议禁掉swappiness,操作为:

  • 首先,直接执行 sysctl  -w  vm.swapiness=0
  • 然后,在文件/etc/sysctl.conf 中添加一行  vm.swapiness=0  ,以实现在系统重启之后,通过文件指定生效

(4) 文件系统的选择

推荐XFS,也可以使用 ext4。

(5) selinux and iptables

常见的相关报错:Errcode: 13 - Permission denied    ——selinux影响所致

关闭selinux:

  • 首先,setenforce  0
  • 然后,修改文件/etc/sysconfig/selinux  ,以实现在系统重启之后,通过文件指定生效

查看selinux是否关闭:

  • getenforce       # 若显示 disables 即为已关闭

iptables:

  • 一般在内网环境会关闭。
  • 关闭的命令:chkconfig  --del  iptables

3、安装MySQL

(1) 为MySQL创建 使用的 账户

groupadd  mysql      # 创建 名为mysql的组

useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M mysql 
 
id mysql             # 确认用户创建成功  

     命令解释:

  • groupadd 创建一个组;useradd 创建一个用户;
  • 由于/sbin/nologin ,使得 创建的账号 不可以登录;
  • -g mysql 即指定用户属于mysql组;-d /path 即指定用户登入是的启动目录;
  • -s /path 即用户登录后使用的shell;-M 即不自动创建用户登录目录;mysql 即创建的用户名。

(2) 基本的软件 安装

mkdir /opt/mysql

cd /opt/mysql

tar  xzvf  mysql-5.7.18-linix-glibc2.5-x86_64.tar.gz

# 使该目录属于 mysql组和mysql用户,由于mysql目录是软链接,继而真实文件同时会被修改属组属主
chown -R mysql:mysql  mysqll-5.7.18-linix-glibc2.5-x86_64 

cd /usr/local

# 在/usr/local下创建一个解压目录的软链接,名为 mysql目录
ln -s  /opt/mysql/mysql-5.7.18-linix-glibc2.5-x86_64  mysql        

(3) 修改配置文件 和 创建一些数据库相关的目录

① 修改配置文件 :/etc/my.cnf 

  • mysql --help|grep my.cnf      
    • # 查看my.cnf的默认路径,确认该路径下是否存在my.cnf,默认路径没有最好,若在两处有,则会从前开始加载执行到最后一个配置文件,如果某参数在两处都有,那么在后面的配置文件会覆盖前面的。
  • ln  /usr/my.cnf  /etc/my.cnf      
    • # 找到my.cnf文件,将该文件硬链接到my.cnf默认的路径一份 (一般使用/etc/my.cnf)

② 配置文件 my.cnf 中的 目录 设计

  • 建议 将数据库的数据和日志存放在一个单独挂载的目录下!
  • /data  是一个单独挂载的分区
  • datadir    /data/mysql/mysql3306/data
  • log-bin    /data/mysql/mysql3306/logs/mysql-bin
  • tmpdir     /data/mysql/mysql3306/tmp

③ 创建目录:

  • mkdir  /data/mysql/mysql3306/{data,logs,tmp} -p                # 根据my.cnf创建目录

基本的配置文件内容:

[mysqld]
user    = mysql
port    = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
socket  = /data/mysql/mysql3306/data/mysql3306.sock
log_error = /data/mysql/mysql3306/data/error.log
pid-file = mysql3306.pid
character-set-server = utf8mb4
log-bin = /data/mysql/mysql3306/logs/mysql-bin
……

(4) 初始化

初始化 即:将一些重要的文件创建了,比如 :数据存储的ibdata文件,日志文件等。

针对 mysql 5.7 版本,如下操作:

  • cd /usr/local/mysql
  • ./bin/mysqld  --defaults-file=/etc/my.cnf  --initialize
    • 执行本条命令,没有返回消息,就是好消息
  • 执行完上条命令,若报错,可以查看/data/mysql/mysql3306/data/error.log  文件中的 [error]

针对 mysql 5.6,5.5 版本,如下操作:

  • cd /usr/local/mysql
  • ./script/mysql_db_install     或   ./bin/mysql_db_install

(5) 启动

cd /usr/local/mysql
cp support-files/mysql.server  /etc/init.d/mysql
/etc/init.d/mysql  start
ps axu |grep mysqld     # 查看mysql是否启动

扩展:

MySQL一般不使用系统自启动,若因报错退出,需要解决完问题手工启动,以下有两种手工启动方式:

  • /usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf  &          # 一般使用它​​​​
  • /usr/local/mysql/bin/mysqld_safe  --defaults-file=/etc/my.cnf  &

 

将 bin 目录下的命令添加到PATH变量中:

  • export PATH=$PATH:/usr/local/mysql/bin

(6) 第一次 连接和登录 mysql

# root 用户 会创建一个临时的密码,查看,并记下,用于第一次登录使用

  • cat /data/mysql/mysql3306/data/error.log |grep  "password"

# 使得 命令mysql 可以使用

  • echo "export PATH=$PATH:/usr/local/mysql/bin"  >>/etc/profile

# 连接mysql ,使用记下的临时密码

  • mysql  -S  /tmp/mysql3306.sock -p

# 修改密码,在5.7 版本中,若不修改密码,之后操作会报错!

  • > alter user user() identified by 'guolm';

# 定制mysql登录后的提示符:(在 my.cnf 添加)

[mysql]

prompt="\u@centos \\h:\\p [\\d]> "

(7) 关闭 mysql

普通的关闭方法:

  • /etc/init.d/mysql  stop   或   service  mysql  stop

若使用以上的手工启动的方法,在关闭时需要使用如下命令:

  • mysqladmin  -S  /tmp/mysql3306.sock   -p  shutdown

至此,mysql二进制安装方式安装完成!

© 著作权归作者所有

共有 人打赏支持
star_glm
粉丝 25
博文 16
码字总数 16450
作品 0
昌平
数据库管理员
MariaDB/MySQL之安装

MySQL的安装方式大致可以分为三种:rpm包安装、通用二进制包安装、源码编译安装。今天我们就用三种方式分别安装下。 准备 平台:CentOS6.5 软件:软件我们在MariaDB的官网下载,速度还是很快...

edgarxue
2014/04/14
0
0
卸载mysql

如何在Linux下卸载MySQL数据库呢? 下面总结、整理了一下Linux平台下卸载MySQL的方法。 MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries)、RPM包安装、源码安装。对应不同...

吴之恒心
2017/07/10
0
0
Linux平台卸载MySQL总结

Linux平台卸载MySQL总结 如何在Linux下卸载MySQL数据库呢? 下面总结、整理了一下Linux平台下卸载MySQL的方法。 MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries)、RPM包...

小菜运维
2016/12/16
0
0
MySQL实战:MySQL二进制包安装及启动问题排查

环境部署:VMware10.0+CentOS6.9(64位)+MySQL5.7.19(64位) 一、操作系统调整 # 更改时区1、先查看时区[root@localhost ~]# date -RTue, 29 Aug 2017 20:13:00 -07002、将Asia/shanghai-上海时......

xiaocao13140
05/23
0
0
Chapter 2 安装 和升级 MySQL

2.1 通用安装向导 2.1.1 决定安装那个版本 的mysql 2.1.2 如何获取 MySQL 2.1.3 安装布局 Layouts(布局) 2.1.4 编译指定特性Compiler-Specific Build Characteristics 2.2 在Unix/Linux平台使...

维和步兵
06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins+docker+nodejs项目的自动部署环境

1、服务器安装docker yum install docker 2、jenkins安装 //创建jenkins工作目录mkdir -p /var/www/jenkins///拉取docker jenkins镜像docker pull jenkins //设置目前权限(必须...

西园里的猫
5分钟前
0
0
 索引和锁底层原理 !

索引和锁底层原理 ! 一、索引 在之前,我对索引有以下的认知: 索引可以加快数据库的检索速度; 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改...

DemonsI
15分钟前
0
0
转载:Java实现的SFTP

JSch - Java实现的SFTP(文件上传详解篇):https://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html JSch - Java实现的SFTP(文件下载详解篇):https://www.cnblogs.com/longyg/......

WJtiny
17分钟前
0
0
聊聊storm的AssignmentDistributionService

序 本文主要研究一下storm的AssignmentDistributionService AssignmentDistributionService storm-2.0.0/storm-server/src/main/java/org/apache/storm/nimbus/AssignmentDistributionServic......

go4it
19分钟前
0
0
完全跨域的单点登录(SSO)解决方案源码解析

本文介绍的是一种PHP的开源SSO解决方案,可完全跨域,实现较简洁,源码地址:https://github.com/legalthings/sso 实现原理 一共分为3个角色: Client - 用户的浏览器 Broker - 用户访问的网...

庞陆阳
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部