首页 > 技术文章 > CentOS 7 安装 mysql 5.7.27 for zabbix

chling 2019-09-20 09:29 原文

本文是因为需要安装zabbix系统,才贴出的此步骤,供自己查阅方便之用;

在安装使用zabbix前,需要先安装数据库,这里使用的是MySQL数据库进行部署,给出安装步骤,大家觉得有用也可收藏;

当然安装MySQL不仅仅可以用作zabbix,如果部署其他需要MySQL数据库环境的话,可以借鉴。


#把下载好的mysql安装包解压到当前目录

tar -xzvf mysql-5.7.27-el7-x86_64.tar.gz

#删除my.cnf主配置文件[mysql 5.7.18 后版本无需my.cnf文件也可运行]

rm -rf /etc/my.cnf

#创建服务程序目录

mkdir /usr/local/mysql

#创建数据库目录

mkdir /usr/local/mysql/var

#创建组

groupadd mysql

#创建用户

useradd -r -g mysql -s /bin/false mysql

#设置所有者、所有组

chown -Rf mysql:mysql /usr/local/mysql/

#进入到解压目录中将解压文件移动到服务程序目录

cd mysql-5.7.27-el7-x86_64/
mv * /usr/local/mysql/

#进入mysql服务程序目录

cd /usr/local/mysql/

#安装数据库并指定参数[二选一] 

./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --initialize //会在最后一行生成密码
# root@localhost: &l9ibdu1t7Ak

#备选安装方式
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var	

#修改my.cnf主配置文件【目前最新版本无需使用此文件,但是zabbix需要】

vim /etc/my.cnf
[mysqld]

user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var
socket=/tmp/mysql.sock
character-set-server=utf8	//重要,设置字符集为UTF-8
innodb_file_per_table=1	   //重要,让InnoDB的每个表文件单独存储
# 取消密码验证
# skip-grant-tables

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#复制开机程序到启动目录并赋予755权限

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld	
chmod 755 /etc/rc.d/init.d/mysqld

#编辑启动文件

vim /etc/rc.d/init.d/mysqld	

basedir=/usr/local/mysql
datadir=/usr/local/mysql/var

#启动mysql

service mysqld start

#mysql加入开机启动

chkconfig mysqld on

#在此文件中添加环境变量

vim /etc/profile	
export PATH=$PATH:/usr/local/mysql/bin

#加载配置文件

source /etc/profile

#可能会用到的环境文件,如果需要时设置

mkdir /var/lib/mysql
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
ln -s /usr/local/mysql/include/mysql /usr/include/mysql

#修改用户密码
#首先登录MySQL。

格式:mysql> SET PASSWORD FOR '用户名'@'localhost' = PASSWORD('新密码'); 
例子:mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');

******数据库拓展*****************************************************************

#查看用户
#进入mysql内置数据库

USE mysql
SELECT Host , User FROM mysql.user;

#建立远程登录用户

格式:CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
例子:CREATE USER 'andy'@'%' IDENTIFIED BY '123456';

#查看mysql监听端口

netstat -anpt | grep 3306

#防火墙添加3306端口

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
firewall-cmd --list-all

#查看andy用户权限

SHOW GRANTS FOR 'andy'@'localhost';

#赋予andy用户最高权限

GRANT ALL PRIVILEGES ON *.* TO 'any'@'%' WITH GRANT OPTION;

#赋予andy用户查,改,增权限

GRANT Select, Update, Insert ON *.* TO 'andy'@'%';

#注:(WITH GRANT OPTION参数:有此参数表示可以将自己权限内的所有或部分权限授予其他用户,无此参数则不可给其他用户授权)

 

######################## 注意 ##########################
#
# 所有的权限为:
# Alter 修改表和索引
# Create 创建数据库和表
# Delete 删除表中已有的记录
# Drop 抛弃(删除)数据库和表
# INDEX 创建或抛弃索引
# Insert 向表中插入新行
# REFERENCE 未用
# Select 检索表中的记录
# Update 修改现存表记录
# FILE 读或写服务器上的文件
# PROCESS 查看服务器中执行的线程信息或杀死线程
# RELOAD 重载授权表或清空日志、主机缓存或表缓存。
# SHUTDOWN 关闭服务器
# ALL 所有;ALL PRIVILEGES同义词
# USAGE 特殊的“无权限”权限
#
###########################################################

推荐阅读