项目 | 路径 |
/opt/apk | MySQL安装包目录 |
/opt/softs | MySQL安装目录 |
/opt/workdata | MYSQL数据目录 |
注意: cenos7.3安装8.0.20版本会有问题
- 启动防火墙
#查看防火墙状态 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 ## |
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 |
- 具体部署
检查是否安装了Mariadb,如果安装了。先卸载
rpm -qa | grep mariadb |
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 |
解压文件
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 |
修改配置文件
#(重要)必须在数据库初始化前完成 vi /etc/my.cnf #尾部添加 lower_case_table_names=1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES |
- 启动服务,产生密码
systemctl start mysqld.service grep 'temporary password' /var/log/mysqld.log |
root@localhost: rdBm68s/9u1k
- 数据库初始化
#数据库初始化 mysql_secure_installation #登陆数据库修改Root密码 Aa111111@ mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa111111@'; |
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; |
/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 |
-
- 缺少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 |
如果安装失败,需要卸载后在安装
- 查看MYSQL安装
rpm -qa|grep -i mysql |
- 关闭MySQL
service mysqld stop |
- 执行卸载命令
rpm -ev --nodeps mysql-community-libs-8.0.20-1.el8.x86_64 |
- 检查是否卸载完毕
rpm -qa|grep -i mysql |
- 查找没有卸载干净的手工删除
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 |
-
- 迁移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: 用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; |