安装环境
操作系统:centos6.6
mysql版本:5.7
安装前的准备
下载通用二进制包
清理历史环境
需要使用root身份操作
[ray@hadoop202 ~]$ sudo su - root
[root@hadoop201 ~]# rpm -qa | grep mysql
mysql-community-release-el6-5.noarch
# 删除掉mysql-community-release-el6-5.noarch
[root@hadoop201 ~]# sudo yum remove mysql-community-release-el6-5.noarch -y
sudo yum -y remove mysql-libs* -y
创建用户和组
[ray@hadoop202 ~]$ sudo useradd mysql -s /sbin/nologin
[ray@hadoop202 ~]$ id mysql
uid=503(mysql) gid=503(mysql) 组=503(mysql)
创建相关目录
- 创建软件目录:/opt/module/mysql(国际标准是存放到/usr/local目录)
- 创建数据目录:/data/mysql
- 创建日志存放目录:/var/log/mysql
建议将软件目录和数据目录、日志文件分开,最好存放到不同的磁盘上(三个目录三个磁盘)
sudo mkdir -p /data/mysql
sudo mkdir -p /var/log/mysql
权限设置
sudo chown -R mysql:mysql /data/mysql
sudo chown -R mysql:mysql /var/logs/mysql
解压二进制包
tar -xzf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/module/
ln -s mysql-5.7.28-linux-glibc2.12-x86_64/ mysql
设置环境变量
# vim /etc/profile
# MYSQL_HOME
export MYSQL_HOME=/opt/module/mysql
export PATH=$PATH:$MYSQL_HOME/bin
# source /etc/profile
验证mysql软件部分是否安装成功
[ray@hadoop202 ~]$ mysql -V
mysql Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using EditLine wrapper
初始化系统库表
# 需要以root身份执行
sudo su - root
mysqld --initialize-insecure --user=mysql --basedir=/opt/module/mysql --datadir=/data/mysql
basedir:mysql软件安装目录
dtadir:mysql数据文件存放目录
安装报错
[ray@hadoop202 ~]$ mysqld --initialize-insecure --user=mysql --basedir=/opt/module/mysql --datadir=/data/mysql
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
缺少libaio-devel和libnuma.so.1库文件
安装缺少的库文件
sudo yum -y install libaio-devel
sudo yum -y install numactl
扩展:
初始化方式:
- –initialize-insecure:生产环境上推荐此种用法(比较简单),会给一个空密码
- –initialize:这种方式比较麻烦
- 以普通的方式初始化,在初始化完成后,会给root用户分配一个临时密码,在使用mysql之前必须重置这个密码(第一次登录之前)
- 密码管理使用严格模式:有3种密码复杂度
mysql5.6版本的初始化方式与mysql5.7有所不同:它使用的是某个脚本文件
配置文件的设置
# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/opt/module/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
mysql开机自启动
准备mysql启动脚本
# 将mysql的启动脚本拷贝至系统软件管理目录中
[root@hadoop202 support-files]# cp mysql.server /etc/init.d/mysqld
修改mysqld文件
# vim /etc/init.d/mysqld
basedir=/opt/module/mysql
datadir=/data/mysql
指定配置文件
# mysql默认会使用my.cnf作为启动配置文件
ln -s /opt/module/mysql/conf/my.cnf /etc/my.cnf
设置开启启动项
# 添加服务
sudo chkconfig --add mysqld
# 设置开启启动
sudo chkconfig mysqld on
启动mysql
sudo service mysqld start
开启mysql binlog
检查binlog功能是否有开启
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)
如果显示状态为OFF表示该功能未开启,开启binlog功能
配置binlog
# vim /opt/module/mysql/conf/my.cnf
[mysqld]
user=mysql
basedir=/opt/module/mysql
datadir=/data/mysql
port=3306
socket=/tmp/mysql.sock
# 错误日志
log_error=/var/log/mysql/error.log
# 查询日志,对所有执行语句进行记录
general_log=on
general_log_file=/var/log/mysql/mysql.log
# 二进制日志
server_id=1918 #mysql实例id,不能和canal的slaveId重复
log_bin=/data/mysql/binlog/mysql-bin #binlog文件名
binlog_format=ROW #选择row模式
[mysql]
socket=/tmp/mysql.sock
重启mysql服务器
更改之后需要重启mysql,配置才能生效
sudo service mysqld restart
验证binlog是否开启
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON|
+---------------+-------+
权限设置
-- 授权ray用户为一个管理员账户
grant all on *.* to ray@'192.168.48.%' identified by '123456' with grant option;
-- 授权ray用户可以在任意主机上登录mysql服务器
grant all on *.* to ray@'%' identified by '123456' with grant option;
flush privileges;