本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • MySQL
  • 【MySQL运维】MySQL 5.7 多种安装方式教程

【MySQL运维】MySQL 5.7 多种安装方式教程

发布:TangLu2020-2-9 10:25分类: MySQL 标签: mysql

一、MySQL常见安装方式介绍

MySQL安装方式分为YUM安装、源码编译安装和通用二进制包3种。在官网(https://dev.mysql.com/downloads/mysql/)进行安装包下载时通过文件名大概能判断出下载的包是否是自己需要的,规律如下:

RPM包:mysql57-community-release-el7-9.noarch.rpm(也可以选择bundle包,该包将MySQL所有包都整合放在了一起)

二进制包(Generic):mysql-5.7.16-linux-glibc2.5-x86_64.tar

源码包安装(Source):mysql-5.7.16.tar.gz


二、使用yum安装MySQL RPM包(最简单的安装方式,但无法自定义参数,不建议使用)

1、如图选择Red Hat Enterprise Linux / Oracle Linux时可以看到一个Yum Repository的下载链接,进入该链接后会显示对应系统版本的rpm文件,这些rpm文件并不是MySQL的安装包,而是Yum仓库。下载对应版本的rpm文件并安装到系统中就会生成一个包含MySQL程序的Yum仓库,剩下的就是使用yum命令直接安装了(Server和Client都装上

mysql571.png


2、安装并启动服务。第一次启动系统会初始化生成数据库的相关文件到/var/lib/mysql目录中

yum install mysql mysql-server
systemctl enable mysqld
systemctl start mysqld


3、登录数据库测试是否正常,MySQL 5.7开始无法使用空密码登录,临时密码存放在日志文件中

grep 'password' /var/log/mysqld.log
mysql -uroot -p 'kjgug512525'


二、二进制预编译安装MySQL(最常用方式,能自定义安装路径等部分参数,需要自己创建用户和组和初始化数据库,也是推荐方式,因为MySQL基本是不需要编译啥东西的)

1、创建MySQL用户和组,并将通用二进制安装包解压到需要的路径下

useradd -r -s /sbin/nologin -M mysql
cd /usr/local/
tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  #将二进制包解压到/usr/local目录下
ln -s mysql-5.7.16-linux-glibc2.5-x86_64  mysql  #创建软连接方便管理


2、创建用于存放MySQL数据和日志的目录,如有需要还可以为慢日志、错误日志都建立各自的目录。创建好目录后需要将目录属主修改为MySQL用户

mkdir /mysql/{data,log}
chown -R mysql.mysql /mysql


3、创建配置文件(可以复制mysql/support-files/my-default.cnf作为模板),然后进行初始化(MySQL 5.7使用的脚本是使用bin/mysqld,之前版本是mysql_install_db)

#方法1:初始化的时候在命令行写好相关参数(不建议)
bin/mysqld --initialize --user=mysql  --basedir=/usr/local/mysql  --datadir=/mysql/data

#方法2:将初始化参数写在配置文件中,然后读取配置文件进行初始化(初始化失败的话通常和配置参数错误有关系)
vi /etc/my3306.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /mysql/data
log-error = /mysql/log/error.log
character-set-server = utf8
socket = /tmp/mysql.sock
innodb_buffer_pool_size = 2G  #设置MySQL使用内存,通常设置为物理内存70%左右
innodb_file_per_table = 1  #为每个表开启独立表空间
[client]  #客户端连接mysql时使用的配置信息
socket = /tmp/mysql.sock

#运行初始化命令指定配置文件路径,该选项必须放在第一个参数中,如果不写的话MySQL会按照几个默认路径按顺序寻找my.cnf这样命名的配置文件
bin/mysqld --defaults-file=/etc/my3306.cnf  --initialize --user=mysql


4、初始化完成后会在datadir生成MySQL初始数据库,以后如果要重新初始化的话需要先停止服务,然后删掉数据目录,接着重新创建目录并授权后再做初始化。如果是初始化失败的话可以查看错误日志检查原因,在没配置错误日志时,日志默认会在databasedir中,以主机名为名,如server1.err


5、初始化完成后也会生成一个临时密码,运行bin/mysql_secure_installation脚本可以修改密码和进行一些初始化设置。在初始化之前记得先启动服务。my.cnf配置文件可以根据实际需要进行修改,如果初始化完成后使用临时密码提示Your password has expired密码过期,是因为系统自带的mysql命令行工具与当前安装的MySQL版本不一致,使用绝对路径即可。

mysql572.png


6、修改配置后有两种方式来重启MySQL。一个是通过客户端关闭MySQL然后再启动

#方法1:用命令行直接关闭再启动服务
mysqladmin -uroot -p123456 -S /tmp/mysql.sock shutdown
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
#方法2:拷贝二进制包中的启动脚本进行服务管理,虽然这操作方式是按照CentOS6来的,但是在7也是向下兼容的)
cp support-files/mysql-server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add mysqld 
chkconfig mysqld on
service mysqld start


7、连接上数据库后必须修改初始化密码才可以进行其他操作

alter user root@'localhost' identified by 'Newp@ssword'


三、源码安装MySQL(所有参数都能自定义)

1、安装编译工具和依赖环境,如cmake,这个是MySQL 5.6开始使用的编译工具

yum -y install ncurses ncurses-devel cmake gcc gcc-c++ openssl-devel bison cmake 


2、创建用户和组,和使用通用二进制安装一样,略


3、进入源码包目录,使用cmake进行编译,5.7版本开始需要有boost库的支持,具体参数可以在官方文档查询

cmake . \
-DDOWNLOAD_BOOST=1 或者 -DWITH_BOOST=/usr/local/boost
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/mysql_data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all 


4、cmake操作完成后执行运行make && make install命令,然后就是漫长的等待,之后就是初始化过程,和使用通用二进制包安装一模一样,略。


四、MySQL的启停方式

1、通过yum安装的话会自动生成脚本用来快速启动或停止服务

service mysql start | stop  #centos 6
systemctl start|stop mysqld #centos7


2、使用mysql工具启停服务

mysqladmin -uroot -ppassword -S /tmp/mysql.sock shutdown  #正确停止服务的方法
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &  #mysqld_safe启动服务后会对服务监听,如果服务进程不在了还会自动启动


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《【MySQL运维】MySQL 5.7 多种安装方式教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-400.html  [生成短网址]

已有 0/3059 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~