[TOC]
环境准备
系统:centos7
软件版本:mysql-5.7
安装目录:/usr/local/mysql
数据库目录:/data/mysql
数据库root密码:hc123456
创建用户,组
创建
mysql
组指定组id为1200
,创建mysql
用户指定用户id为1200
默认组mysql
1 | groupadd -g 1200 mysql |
创建数据目录
mysql
数据库数据存储目录
1 | datadir=/data/mysql # 数据库数据存储目录 |
安装 jemalloc
配置软件安装源,
jemalloc
适合多线程下内存分配管理,减少内存碎片
1 | rm -rf /etc/yum.repos.d/* |
下载软件,解压
1 | curl -OL http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7 -linux-glibc2 -x86_64.tar.gz --progress |
配置服务
1 | cp $basedir/support-files/mysql.server /etc/init.d/mysqld |
mysql配置文件
1 | cat << EOF >/etc/my.cnf |
数据库配置优化
1 | cp /etc/my.cnf{,.bak} |
初始化数据库
添加
libjemalloc
模块,初始化数据库,启动mysql
服务
1 | sed -i 's@executing mysqld_safe@executing mysqld_safe\nexport LD_PRELOAD=/usr/lib64/libjemalloc.so@' $basedir/bin/mysqld_safe |
添加环境变量
echo "export PATH=$basedir/bin:\$PATH" >> /etc/profile
. /etc/profile
初始化root密码, 权限
root
用户仅本地登录
1 | dbrootpwd=hc123456 # 数据库root密码 |
配置mysql库文件
1 | rm -rf /etc/ld.so.conf.d/mariadb-x86_64.conf |
开启root远程登录权限
1 | mysql -uroot -p${dbrootpwd} -e "grant all privileges on *.* to root@'%' identified by \"${dbrootpwd}\" with grant option;" |
数据库所有用户的登录权限
1 | mysql -uroot -p${dbrootpwd} -e "SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;" |
配置防火墙
1 | firewall-cmd --zone=public --add-port=3306/tcp --permanent # 永久生效允许 3306 端口 |
关闭selinux
setenforce 0 # 临时生效,重启失效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 重启后生效
使用脚本
可修改脚本中mysql安装路径及数据库路径实现自定义安装,安装完成后防火墙自动放行3306端口,关闭selinux
curl http://home.onlycloud.xin/code/mysql-bin-install.sh -o mysql-install.sh
sh mysql-install.sh