文档章节

二进制方式 安装MySQL

star_glm
 star_glm
发布于 2016/06/22 17:57
字数 1552
阅读 25
收藏 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
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
Linux平台卸载MySQL总结

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

小菜运维
2016/12/16
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

没有更多内容

加载失败,请刷新页面

加载更多

《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
13分钟前
0
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
29分钟前
1
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部