Cenos7部署mySQL8

  1. 概述
    1. 部署内容

项目

路径

/opt/apk

MySQL安装包目录

/opt/softs

MySQL安装目录

/opt/workdata

MYSQL数据目录

注意: cenos7.3安装8.0.20版本会有问题

  1. 准备工作
  • 启动防火墙

#查看防火墙状态

firewall-cmd --state

#如果没有启动,启动防火墙

systemctl start firewalld

  • 添加规则

firewall-cmd --zone=public --add-port=54111/tcp --permanent

#因为mysql8.0.18存在漏洞,但是安装8.0.20又有问题,所有通过防火墙限制访问

##应用服务器

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.25.41.11" port protocol="tcp" port="3306" accept"

## 开发机

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.36.19" port protocol="tcp" port="3306" accept"

#重启生效

firewall-cmd --reload

  • 创建目录

mkdir /opt/apk

mkdir /opt/softs

mkdir /opt/workdata

  • 安装必须()

#依赖  如果mysql版本是 8.0.18可以不用安装 ,报错在处理

yum install -y libaio

yum install -y libaio.so.1

yum -y install numactl

##

  1. 安装JDK(可选)

cd /opt/apk/

mkdir /opt/softs/jdk8

tar -zxvf jdk-8u251-linux-x64.tar.gz -C /opt/softs/jdk8

cd /etc/profile.d/

vi java.sh

export JAVA_HOME=/opt/softs/jdk8

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

  1. 具体部署
    1. 卸载mariadb

检查是否安装了Mariadb,如果安装了。先卸载

rpm -qa | grep mariadb

rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

    1. 安装MySQL

解压文件

cd /opt/apk/

tar -xvf mysql-8.0.20-1.el8.x86_64.rpm-bundle.tar

配置环境变量

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs*

rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm

    1. 配置MYSQL

修改配置文件

#(重要)必须在数据库初始化前完成

vi /etc/my.cnf

#尾部添加

lower_case_table_names=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

  1. 启动服务,产生密码

systemctl start mysqld.service

grep 'temporary password' /var/log/mysqld.log

root@localhost: rdBm68s/9u1k

  1. 数据库初始化

#数据库初始化

mysql_secure_installation

#登陆数据库修改Root密码  Aa111111@

mysql -uroot -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa111111@';

    1. 创建远程访问用户

mysql -uroot -p

SET GLOBAL log_bin_trust_function_creators = 1;

CREATE USER 'webadmin'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa111111@';

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

FLUSH PRIVILEGES;

  1. 附录:

    1. 安装依赖包

/usr/bin/perl 被 mysql-community-server-8.0.18-1.el7.x86_64 需要

net-tools 被 mysql-community-server-8.0.18-1.el7.x86_64 需要

perl(Getopt::Long) 被 mysql-community-server-8.0.18-1.el7.x86_64 需要

perl(strict) 被 mysql-community-server-8.0.18-1.el7.x86_64 需要

./Configure -des -Dprefix=/usr/local/perl

make

make install

perl -v

ln -s /usr/local/perl/bin/perl  /usr/bin/perl

rpm -ivh perl-5.16.3-297.el7.x86_64.rpm perl-libs-5.16.3-297.el7.x86_64.rpm perl-macros-5.16.3-297.el7.x86_64.rpm perl-threads-shared-1.43-6.el7.x86_64.rpm perl-threads-1.87-4.el7.x86_64.rpm perl-constant-1.27-2.el7.noarch.rpm perl-Carp-1.26-244.el7.noarch.rpm perl-File-Temp-0.23.01-3.el7.noarch.rpm perl-File-Path-2.09-2.el7.noarch.rpm perl-PathTools-3.40-5.el7.x86_64.rpm perl-Exporter-5.68-3.el7.noarch.rpm perl-Socket-2.010-5.el7.x86_64.rpm perl-Storable-2.45-3.el7.x86_64.rpm perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm perl-Filter-1.49-3.el7.x86_64.rpm perl-Getopt-Long-2.40-3.el7.noarch.rpm perl-Pod-Simple-3.28-4.el7.noarch.rpm perl-Text-ParseWords-3.29-4.el7.noarch.rpm perl-Time-HiRes-1.9725-3.el7.x86_64.rpm perl-Time-Local-1.2300-2.el7.noarch.rpm perl-Pod-Escapes-1.04-297.el7.noarch.rpm perl-Pod-Usage-1.63-3.el7.noarch.rpm perl-Encode-2.51-7.el7.x86_64.rpm perl-Pod-Perldoc-3.20-4.el7.noarch.rpm perl-podlators-2.5.1-3.el7.noarch.rpm perl-HTTP-Tiny-0.033-3.el7.noarch.rpm perl-parent-0.225-244.el7.noarch.rpm

rpm -ivh perl-Mo,,-In

    1. 缺少libssl.so.1.1

yum install http://repo.okay.com.mx/centos/7/x86_64/release/okay-release-1-1.noarch.rpm

yum install openssl11-libs

    1. 卸载Mysql

如果安装失败,需要卸载后在安装

  1. 查看MYSQL安装

rpm -qa|grep -i mysql

  1. 关闭MySQL

service mysqld stop

  1. 执行卸载命令

rpm -ev --nodeps mysql-community-libs-8.0.20-1.el8.x86_64

  1. 检查是否卸载完毕

rpm -qa|grep -i mysql

  1. 查找没有卸载干净的手工删除

find / -name mysql

[root@sgcloud237 opt]# rm -rf /etc/selinux/targeted/active/modules/100/mysql

[root@sgcloud237 opt]# rm -rf /var/lib/mysql

[root@sgcloud237 opt]# rm -rf /var/lib/mysql/mysql

[root@sgcloud237 opt]# rm -rf /usr/lib64/mysql

[root@sgcloud237 opt]# rm -rf /usr/share/mysql

    1. 迁移MySQLDATA目录

service mysqld stop

systemctl stop mysqld.service

vi /etc/my.cnf

## datadir=/var/lib/mysql

datadir=/opt/workdata/mysql/data

#socket=/var/lib/mysql/mysql.sock

socket=/opt/workdata/mysql/mysql.sock

#log-error=/var/log/mysqld.log

log-error=/opt/workdata/mysql/logs/mysqld.log

#pid-file=/var/run/mysqld/mysqld.pid

pid-file=/opt/workdata/mysql/mysqld.pid

mv mysql  /opt/workdata/mysql/data

mv /var/log/mysqld.log  /opt/workdata/mysql/logs/

chown mysql:mysql /opt/workdata/mysql/ -R

service mysqld start

systemctl start mysqld.service

    1. 修改密码

方法1: 用SET PASSWORD命令

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风月明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值