二进制安装MySQL-5.7.28

系统基础优化

#更改主机名
hostname msyql
echo "msyql" >/etc/hostname
#修改字符集
echo "LANG="zh_CN.UTF-8"" >/etc/locale.conf 
source /etc/locale.conf 
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service 
firewall-cmd --state
#关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
#添加时间同步
echo '#time sync by fage at 2018.10.28' >>/var/spool/cron/root
echo '*/5 * * * *  /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
#加大文件描述
echo "*  soft  nofile  655360" >>/etc/security/limits.conf 
echo "*  hard  nofile  655360" >>/etc/security/limits.conf 

软件下载地址

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

创建存放安装目录及程序依赖用户下载软件包

mkdir -p /application/tools
cd /application/tools
useradd -u1010 -s /sbin/nologin -M mysql && id mysql
wget -q https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

去除CentOS 7 自带的数据库

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

解压并移动到指定目录

tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /application/
mv /application/mysql-5.7.28-linux-glibc2.12-x86_64 /application/mysql-5.7.28
ln -sv /application/mysql-5.7.28/ /application/mysql

创建日志和数据存放位置并授权用户

mkdir -p /application/mysql/logs
mkdir -p /application/mysql/data/
chown -R mysql.mysql /application/mysql/

初始化数据库,注意初始化的时候会产生数据库root密码:password is generated for root@localhost: y&plm*8fW;7. 具体看实际密码

/application/mysql/bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data/

添加系统环境变量

echo "export PATH=$PATH:/application/mysql/bin" >>/etc/profile
source /etc/profile

开启加密连接,开启ssl连接

cd /application/mysql/bin/ && ./mysql_ssl_rsa_setup --datadir=/application/mysql/data/

替换启动文件安装数据库的位置并复制到开机启动路径

sed -i "s#/usr/local/#/application/#g" /application/mysql/support-files/mysql.server
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

配置my.cnf文件参数,这个需要看生产环境具体去优化部分参数

cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
port=3306
server_id=1
log-bin=/application/mysql/data/mysql-bin
character-set-server=utf8
datadir=/application/mysql/data
basedir=/application/mysql
socket=/tmp/mysql.sock
max_allowed_packet = 10M
skip_symbolic_links=yes
local-infile=0

[mysqldump]
quick
max_allowed_packet = 16M

[mysqld_safe]
pid-file=/application/mysql/mysql.pid
EOF

启动和添加自启动使用systemd方式进行管理

cat >/usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
 
[Install]
WantedBy=multi-user.target
 
[Service]
User=mysql
Group=mysql
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStartus=1
PrivateTmp=false
EOF

启动后进去修改密码

mysql -uroot -pvVjs3qMu>KhT
alter user 'root'@'localhost' identified by '123456';
flush privileges;

创建允许远程的用户和授权地址并设置密码

grant all on *.* to root@'192.168.10.%' identified by '123456';
flush privileges;
原文地址:https://www.cnblogs.com/huanglingfa/p/13779875.html