使用工具及镜像:

虚拟机:VMware16

openeuler镜像:openEuler-22.03-LTS-x86_64

mysql版本:mysql-5.7.40-1.el7.x86_64.rpm-bundle

一、系统安装(多图)

  1. 选择合适的Linux版本

  1. 根据需要设置处理和内存

  1. 网络连接设置

如果设置与主机同一个网段就设置桥接,其他模式也可以满足使用

  1. 选择镜像

下载OpenEuler镜像,这里测试用的是openEuler-22.03-LTS-x86_64,下载地址:https://repo.openeuler.org/openEuler-22.03-LTS/ISO/x86_64/openEuler-22.03-LTS-x86_64-dvd.iso

  1. 进入安装步骤

选择第一个Install openEuler 22.0.-LTS进入安装界面

  1. 安装信息介绍

① 可设置分区,我选择的是自动分区(点击进去后完成即可),也可以根据自己需要手动分区;

② 软件选择,根据需要选择预按照文件,一般为了服务器纯净选择最小安装;

③ 网络和主机名可以通过命令进行设置,这里暂不设置,如果准备好了点击启用即可;

④ 设置ROOT密码,对密码强度有要求,需包含三种符合(注意设置完记录一下);

⑤ 根据需要创建其他用户和密码;

⑥ 开始安装

  1. 配置系统静态IP

# cd /etc/sysconfig/network-scripts/# vi ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=static#dchp修改为staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=61edc1b6-af48-4d50-9886-c49d9af5bd7fDEVICE=ens33ONBOOT=yesIPADDR=192.168.1.111#设置为自己的IPPREFIX=24GATEWAY=192.168.1.1#设置为自己的网关NETMASSK=255.255.255.0#子网掩码DNS1=192.168.1.1#DNS1
  1. 重启网络

# systemctl restart NetworkManager
  1. 安装常用的命令

# yum -y install tar# yum -y install vim

二、下载及安装MySQL数据库(采用tar包安装)

  1. 下载MySQL数据库

https://downloads.mysql.com/archives/community/

  1. 将下载好的RPM Bundle包上传至服务器

  1. 执行命令查看服务器是否有mysql项

# yum repolist all | grep mysql
  1. 开始解压上传的安装包

# tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar -C /mysql/mysql

解压结果如下:

  1. 使用rpm包分别安装common , libs, client, server服务,如下:

注意安装顺序

# cd /mysql/mysql[root@localhost mysql]# rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-common-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-common-5.7.40-1.e################################# [100%][root@localhost mysql]# rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-libs-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-libs-5.7.40-1.el7################################# [100%][root@localhost mysql]# rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-client-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-client-5.7.40-1.e################################# [100%][root@localhost mysql]# rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-server-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-server-5.7.40-1.e################################# [100%]/usr/lib/tmpfiles.d/mysql.conf:23: Line references path below legacy directory /var/run/, updating /var/run/mysqld → /run/mysqld; please update the tmpfiles.d/ drop-in file accordingly.

再执行 rpm -qa | grep mysql 命令查看安装情况:

  1. 初始化数据库

# mysqld --initialize --console;获取初始化的密码# cat /var/log/mysqld.log | grep password;

① 查看mysql服务是否真的启动了,可以执行 systemctl status mysqld, 也可以ps命令查询mysql进程

一般第一次是没有启动成功

② 启动查看看错误

# systemctl start mysqld

这里可以三种方式排查错误信息

  • systemctl status mysqld查看错误信息

  • journalctl -xe

  • cat /var/log/mysqld.log (在mysql配置文件 /etc/my.cnf中配置)

③ 无法启动的原因一般是由于mysql的目录权限问题

# chown -R mysql:mysql /var/lib/mysql如果不行再暴力授权到777# chmod 777 /usr/sbin/mysqld# chmod 777 /var/lib/mysql/*

④ 重新启动mysql服务

# systemctl start mysqld# systemctl status mysqld

  1. 登录mysql错误

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file

联网直接执行

# yum install libncurses* -y离线处理方式# # cp /lib64/libncurses.so.6 /lib64/libncurses.so.5或者 添加软连接# ln -s /lib64/libncurses.so.6 /lib64/libncurses.so.5
  1. 登录后必须修改密码:

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘123456’;

防止在远程不能登陆:alter user root identified with mysql_native_password by ‘123456’;(执行这个再继续可能避免出现退出后不能再登录的问题,下面ERROR 1045 (28000))

  1. 设置远程登录

mysql> use mysql;mysql> update user set host='%' where user='root';mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;mysql> FLUSH PRIVILEGES;mysql> quit;
  1. 解决mysql:ERROR 1045 错误

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES)

# vim /etc/my.cnf在[mysqld]下添加skip-grant-tables,保存即可。重启mysql服务# systemctl stop mysqld# systemctl start mysqld
  1. 重新登录mysql

# mysql -u root -p直接回车不需要输入密码(出现Enter Password 也一样直接回车,即可登陆成功)mysql> USE mysql;mysql> update user set authentication_string=password('123456') where user='root';mysql> flush privileges;mysql> quit;然后删除/etc/my.cnf文件中添加的skip-grant-tables,重启mysql服务

三、开放端口号:

查看已经开放的端口

firewall-cmd --list-ports 或 firewall-cmd --query-port=3306/tcp

开启端口

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

重启防火墙使开放的端口生效:

systemctl restart firewalld.service

四、修改mysql数据库data目录

  1. 创建新的data文件夹

# mkdir /mysql/data/
  1. 停止mysql服务

# service mysqld stop
  1. 复制data文件

# cp -rf /var/lib/mysql /mysql/data/
  1. 编辑my.cnf文件

# vim /etc/my.cnf

  1. 更改文件权限

# chown -R mysql:mysql /mysql/data
  1. 修改mysql配置文件

修改MySQL启动脚本/etc/init.d/mysqld,执行”vim /etc/init.d/mysqld “(如果没有此文件,就不需要修改,这里就没有该文件)

7. 解决权限、路径、配置文件都修改后,仍然无法启动数据库

cat /var/log/mysqld.log出现以下内容:

Can’t create test file /mysql/data/mysql/localhost.lower-test

# vim /etc/selinux/config修改SELINUX=disabled,然后重启服务器# reboot再重启mysql服务即正常。# service mysqld restart

五、设置MySQL数据库服务自启动

# service mysqld status
  1. 通过启动状态,查看mysql.service脚本路径

  1. 将安装目录下的 support-files 目录下mysql.server复制到/etc/rc.d/init.d/mysql

# cp /usr/lib/systemd/system/mysqld.service /etc/init.d/mysql
  1. 复制后赋予权限

# chmod +x /etc/init.d/mysql
  1. 修改脚本,使系统能正常识别

# vim /etc/init.d/mysql添加下面三行(shell脚本需要保证第一行是#!/bin/bash,否则文件将不能被识别)#!/bin/bash#chkconfig: 2345 81 96#description: StartMySQL

  1. 添加到服务列表

# chkconfig --add mysql
  1. 查看服务列表,服务是否添加成功

# chkconfig --list

注意看到mysql后面的345都是开或者是on表示成功, 如果显示关或者 off 则需要手动开启,执行以下命令

# chkconfig --level 345 mysqld on

  1. 执行reboot重启测试